Pular para o conteúdo principal

Requisitos de usuário do banco de dados Microsoft SQL Server

Saiba quais privilégios conceder ao usuário do banco de dados Microsoft SQL Server que você planeja usar para ingerir dados no Databricks.

A Databricks recomenda que o senhor crie um usuário de banco de dados que seja usado exclusivamente para a ingestão da Databricks.

Conceder privilégios de banco de dados

As tabelas nesta seção listam os privilégios que o usuário do banco de dados deve ter, dependendo da variação do banco de dados. Esses privilégios são necessários se o senhor usar a captura de dados de alterações (CDC) (CDC) ou alterar o acompanhamento. As tabelas também mostram o comando para conceder cada privilégio.

Bancos de dados não Azure

Privilégios necessários

Onde executar o comando

comando para conceder

VIEW ANY DATABASE

Banco de dados mestre

execute o seguinte comando T-SQL no banco de dados mestre: ```sql GRANT VIEW ANY DATABASE TO DATABASE_USER;

Acesso de leitura às seguintes tabelas do sistema e visualização no banco de dados mestre:

  • sys.databases
  • sys.schemas
  • sys.tables
  • sys.columns
  • sys.key_constraints
  • sys.foreign_keys
  • sys.check_constraints
  • sys.default_constraints
  • sys.change_tracking_tables
  • sys.change_tracking_databases
  • sys.objects
  • sys.views
  • sys.triggers

Banco de dados mestre

Execute o seguinte comando T-SQL no banco de dados mestre: ```sql GRANT SELECT ON object::sys.databases TO DATABASE_USER; GRANT SELECT ON object::sys.schemas TO DATABASE_USER; GRANT SELECT ON object::sys.tables TO DATABASE_USER; GRANT SELECT ON object::sys.columns TO DATABASE_USER; GRANT SELECT ON object::sys.key_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.foreign_keys TO DATABASE_USER; GRANT SELECT ON object::sys.check_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.default_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_tables TO DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_databases TO DATABASE_USER; GRANT SELECT ON object::sys.objects TO DATABASE_USER; GRANT SELECT ON object::sys.views TO DATABASE_USER; GRANT SELECT ON object::sys.triggers TO DATABASE_USER;

Execute permissões nos seguintes procedimentos armazenados pelo sistema no banco de dados mestre:

  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100

Banco de dados mestre

Execute o seguinte comando T-SQL no banco de dados que o senhor deseja ingerir: ```sql GRANT EXECUTE ON object::sp_tables TO DATABASE_USER; GRANT EXECUTE ON object::sp_columns_100 TO DATABASE_USER; GRANT EXECUTE ON object::sp_pkeys TO DATABASE_USER; GRANT EXECUTE ON object::sp_statistics_100 TO DATABASE_USER;

VIEW DATABASE STATE

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL no banco de dados que você deseja importar:

SQL
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;

No SQL Server 2022 e versões posteriores, você pode usar a permissão VIEW DATABASE PERFORMANCE STATE que possui um escopo mais restrito:

SQL
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

SELECT nos esquemas e tabelas que você deseja ingerir.

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL para cada esquema e tabela que você deseja importar: ```sql GRANT SELECT ON schema::SCHEMA_NAME TO DATABASE_USER; GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;

SELECT privilégios nas seguintes tabelas e visualizações do sistema no banco de dados que o senhor deseja ingerir:

  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL no banco de dados que o senhor deseja ingerir: ```sql USE DATABASE_NAME; GRANT SELECT ON object::sys.indexes TO DATABASE_USER; GRANT SELECT ON object::sys.index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.columns TO DATABASE_USER; GRANT SELECT ON object::sys.tables TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_indexes TO DATABASE_USER;

Banco de dados SQL do Azure

Privilégios

Onde executar o comando

Comandos

Participação na seguinte função de servidor no banco de dados mestre para que o usuário possa acessar o mestre:

  • ##MS_DatabaseConnector##

Banco de dados mestre

execute o seguinte comando T-SQL no banco de dados mestre: ```sql ALTER ROLE ##MS_DatabaseConnector## ADD MEMBER DATABASE_USER;

Acesso de leitura às seguintes tabelas do sistema e visualização no banco de dados que o senhor deseja ingerir:

  • sys.schemas
  • sys.tables
  • sys.columns
  • sys.key_constraints
  • sys.foreign_keys
  • sys.check_constraints
  • sys.default_constraints
  • sys.change_tracking_tables
  • sys.objects
  • sys.triggers
  • sys.indexes
  • sys.index_columns
  • sys.fulltext_index_columns
  • sys.fulltext_indexes

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL no banco de dados que o senhor deseja ingerir: ```sql GRANT SELECT ON object::sys.schemas TO DATABASE_USER; GRANT SELECT ON object::sys.tables TO DATABASE_USER; GRANT SELECT ON object::sys.columns TO DATABASE_USER; GRANT SELECT ON object::sys.key_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.foreign_keys TO DATABASE_USER; GRANT SELECT ON object::sys.check_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.default_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_tables TO DATABASE_USER; GRANT SELECT ON object::sys.objects TO DATABASE_USER; GRANT SELECT ON object::sys.triggers TO DATABASE_USER; GRANT SELECT ON object::sys.indexes TO DATABASE_USER; GRANT SELECT ON object::sys.index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_indexes TO DATABASE_USER; GRANT SELECT ON schema::SCHEMA_NAME TO DATABASE_USER; GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;

VIEW DATABASE STATE

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL no banco de dados que você deseja importar:

SQL
GRANT VIEW DATABASE STATE TO DATABASE_USER;

No SQL Server 2022 e versões posteriores, você pode usar a permissão VIEW DATABASE PERFORMANCE STATE que possui um escopo mais restrito:

SQL
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Azure SQL gerenciar Instância

Privilégios

Onde executar o comando

Comandos

Acesso de leitura às seguintes tabelas do sistema e visualização no banco de dados que o senhor deseja ingerir:

  • sys.schemas
  • sys.tables
  • sys.columns
  • sys.key_constraints
  • sys.foreign_keys
  • sys.check_constraints
  • sys.default_constraints
  • sys.change_tracking_tables
  • sys.objects
  • sys.triggers
  • sys.indexes
  • sys.index_columns
  • sys.fulltext_index_columns
  • sys.fulltext_indexes

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL no banco de dados que o senhor deseja ingerir: ```sql GRANT SELECT ON object::sys.schemas TO DATABASE_USER; GRANT SELECT ON object::sys.tables TO DATABASE_USER; GRANT SELECT ON object::sys.columns TO DATABASE_USER; GRANT SELECT ON object::sys.key_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.foreign_keys TO DATABASE_USER; GRANT SELECT ON object::sys.check_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.default_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_tables TO DATABASE_USER; GRANT SELECT ON object::sys.objects TO DATABASE_USER; GRANT SELECT ON object::sys.triggers TO DATABASE_USER; GRANT SELECT ON object::sys.indexes TO DATABASE_USER; GRANT SELECT ON object::sys.index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_indexes TO DATABASE_USER; GRANT SELECT ON schema::SCHEMA_NAME TO DATABASE_USER; GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;

acesso de visualização e leitura aos bancos de dados:

  • VIEW ANY DATABASE
  • sys.databases
  • sys.change_tracking_databases

Banco de dados mestre

Execute o seguinte comando T-SQL no banco de dados mestre: ```sql GRANT VIEW ANY DATABASE TO DATABASE_USER; GRANT SELECT ON sys.databases TO DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_databases TO DATABASE_USER;

Execute permissões nos seguintes procedimentos armazenados no sistema:

  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100

Banco de dados mestre

Execute o seguinte comando T-SQL no banco de dados mestre: ```sql GRANT EXECUTE ON object::sp_tables TO DATABASE_USER; GRANT EXECUTE ON object::sp_columns_100 TO DATABASE_USER; GRANT EXECUTE ON object::sp_pkeys TO DATABASE_USER; GRANT EXECUTE ON object::sp_statistics_100 TO DATABASE_USER;

VIEW DATABASE STATE

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL no banco de dados que você deseja importar:

SQL
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;

No SQL Server 2022 e versões posteriores, você pode usar a permissão VIEW DATABASE PERFORMANCE STATE que possui um escopo mais restrito:

SQL
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Amazon RDS para SQL Server

No Amazon RDS para SQL Server, não são necessárias concessões de banco de dados mestre. Os logins SQL Server recebem automaticamente acesso à visão do sistema e aos procedimentos armazenados necessários no master por meio da função public . Não é possível criar usuários no banco de dados master no Amazon RDS.

Privilégios necessários

Onde executar o comando

comando para conceder

SELECT privilégios na seguinte visão do sistema no banco de dados que você deseja ingerir:

  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL no banco de dados que o senhor deseja ingerir: ```sql USE DATABASE_NAME; GRANT SELECT ON object::sys.indexes TO DATABASE_USER; GRANT SELECT ON object::sys.index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.columns TO DATABASE_USER; GRANT SELECT ON object::sys.tables TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_indexes TO DATABASE_USER;

SELECT nos esquemas e tabelas que você deseja ingerir.

Banco de dados que você deseja ingerir

Execute o seguinte comando T-SQL para cada esquema ou tabela que você deseja importar: ```sql GRANT SELECT ON SCHEMA::SCHEMA_NAME TO DATABASE_USER; -- Or for individual tables: GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;

captura de dados de alterações (CDC) (CDC) requisitos de privilégio

Se o CDC estiver ativado, serão necessários privilégios adicionais nos objetos de suporte DDL. Consulte Preparar SQL Server para ingestão usando o script de objetos utilitários.

nota

Para a configuração CDC no Amazon RDS, o usuário que executa o script de configuração de utilitários deve ser o usuário mestre do RDS ou deve ter permissão EXECUTE em msdb.dbo.rds_cdc_enable_db concedida pelo usuário mestre. Primeiro você deve criar o usuário em msdb antes de conceder esta permissão:

SQL
USE msdb;
CREATE USER SETUP_USER FOR LOGIN SETUP_USER;
GRANT EXECUTE ON dbo.rds_cdc_enable_db TO SETUP_USER;
GO

Essa permissão adicional não é necessária para alterar a configuração de acompanhamento.

Alterar os requisitos de privilégio de acompanhamento

Se o acompanhamento de alterações estiver ativado, serão necessários privilégios adicionais nos objetos de suporte DDL. Consulte Preparar SQL Server para ingestão usando o script de objetos utilitários.