Compartilhar via


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

Importante

O conector do Microsoft SQL Server está em Versão Preview pública.

Este artigo descreve os privilégios que você deve conceder ao usuário do banco de dados do Microsoft SQL Server que você planeja usar para ingerir no Azure Databricks.

O Databricks recomenda que você crie um usuário de banco de dados usado exclusivamente para ingestão do 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 você usar a CDC (captura de dados de alteração) ou o controle de alterações. As tabelas também mostram os comandos para conceder cada privilégio.

Bancos de dados que não são do Azure

Privilégios necessários Comandos a serem concedidos Onde executar os comandos
Leia o acesso às seguintes tabelas e exibições do sistema 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.triggers
Execute os seguintes comandos T-SQL no banco de dados mestre:
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>;
Banco de dados mestre
Execute permissões nos seguintes procedimentos armazenados do sistema no banco de dados mestre:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Execute os seguintes comandos T-SQL no banco de dados que você deseja ingerir:
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>;
Banco de dados mestre
SELECT nos esquemas e tabelas que você deseja ingerir. Execute o seguinte comando T-SQL para cada esquema e tabela que você deseja ingerir:
GRANT SELECT ON object::<table-name\|schema-name> to <database-user>;
Banco de dados que você deseja processar
SELECT privilégios nas tabelas e exibições do sistema a seguir no banco de dados que você quer ingerir:
  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes
Execute os seguintes comandos T-SQL no banco de dados que você deseja ingerir:
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 que você deseja processar

Banco de Dados SQL do Azure

Privilégios Comandos Onde executar os comandos
Acesso de leitura para as seguintes tabelas e exibições do sistema no banco de dados que você quer 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
Execute os seguintes comandos T-SQL no banco de dados que você deseja ingerir:
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>;
Banco de dados que você deseja processar

Instância Gerenciada de SQL do Azure

Privilégios Comandos Onde executar os comandos
Acesso de leitura para as seguintes tabelas e exibições do sistema no banco de dados que você quer 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
Execute os seguintes comandos T-SQL no banco de dados que você deseja ingerir:
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>;
Banco de dados que você deseja processar
Exibir e ler o acesso aos bancos de dados:
  • VIEW ANY DATABASE
  • sys.databases
  • sys.change_tracking_databases
Execute os seguintes comandos T-SQL no banco de dados mestre:
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>;
Banco de dados mestre
Execute permissões nos seguintes procedimentos armazenados do sistema:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Execute os seguintes comandos T-SQL no banco de dados mestre:
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>;
Banco de dados mestre

Requisitos de privilégio de captura de dados de alterações (CDA)

Se o CDC estiver habilitado, privilégios adicionais serão necessários nos objetos de suporte de DDL. Consulte Habilitar CDC interno no Microsoft SQL Server.

Requisitos de privilégio de controle de alterações

Se o controle de alterações estiver habilitado, privilégios adicionais serão necessários nos objetos de suporte DDL. Consulte Habilitar o controle de alterações no Microsoft SQL Server.