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

Saiba quais privilégios 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 que seja usado exclusivamente para a ingestão de 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 captura de dados de alteração (CDC) 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 Onde executar os comandos Comandos para conceder
VIEW ANY DATABASE Base de dados principal Execute o seguinte comando T-SQL na base de dados mestre:
GRANT VIEW ANY DATABASE TO DATABASE_USER;
Acesso de leitura às seguintes tabelas e visualizações do sistema nas bases 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
Base de dados principal 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;
GRANT SELECT ON object::sys.triggers TO DATABASE_USER;
Execute permissões nos seguintes procedimentos armazenados do sistema no banco de dados mestre:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Base de dados principal 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;
VIEW DATABASE STATE Base de dados que pretende importar Execute o seguinte comando T-SQL na base de dados que pretende ingerir:
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;
Em SQL Server de 2022 e seguintes, pode usar a permissão mais restrita VIEW DATABASE PERFORMANCE STATE em vez disso:
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;
SELECT nos esquemas e tabelas que pretende ingerir. Base de dados que pretende importar Execute os seguintes comandos T-SQL para cada esquema e tabela que pretende ingerir:
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 exibições 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
Base de dados que pretende importar 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;

Base de Dados SQL do Azure

Privilégios Onde executar os comandos Comandos
A pertença à seguinte função de servidor na base de dados mestre para que o utilizador possa aceder ao master:
  • ##MS_DatabaseConnector##
Base de dados principal Execute o seguinte comando T-SQL na base de dados mestre:
ALTER ROLE ##MS_DatabaseConnector## ADD MEMBER DATABASE_USER;
Acesso de leitura às seguintes tabelas e visualizações de sistema na base de dados que pretende 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
Base de dados que pretende importar 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;
VIEW DATABASE STATE Base de dados que pretende importar Execute o seguinte comando T-SQL na base de dados que pretende ingerir:
GRANT VIEW DATABASE STATE TO DATABASE_USER;
Em SQL Server de 2022 e seguintes, pode usar a permissão mais restrita VIEW DATABASE PERFORMANCE STATE em vez disso:
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Azure SQL Managed Instance

Privilégios Onde executar os comandos Comandos
Acesso de leitura às seguintes tabelas e visualizações de sistema na base de dados que pretende 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
Base de dados que pretende importar 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;
Acesso de visualização e leitura a bases de dados:
  • VIEW ANY DATABASE
  • sys.databases
  • sys.change_tracking_databases
Base de dados principal 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;
Execute permissões nos seguintes procedimentos armazenados do sistema:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Base de dados principal 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;
VIEW DATABASE STATE Base de dados que pretende importar Execute o seguinte comando T-SQL na base de dados que pretende ingerir:
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;
Em SQL Server de 2022 e seguintes, pode usar a permissão mais restrita VIEW DATABASE PERFORMANCE STATE em vez disso:
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 para bases de dados mestres. Os inícios de sessão do SQL Server recebem automaticamente acesso às vistas do sistema e aos procedimentos armazenados necessários na base de dados master através da função public. Não podes criar utilizadores na master base de dados no Amazon RDS.

Privilégios necessários Onde executar os comandos Comandos para conceder
SELECT Privilégios nas seguintes vistas de sistema na base de dados que pretende ingerir:
  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes
Base de dados que pretende importar 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;
SELECT nos esquemas e tabelas que pretende ingerir. Base de dados que pretende importar Execute o seguinte comando T-SQL para cada esquema ou tabela que pretende ingerir:
GRANT SELECT ON SCHEMA::SCHEMA_NAME TO DATABASE_USER;
-- Or for individual tables:
GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;

Alterar requisitos de privilégio de captura de dados (CDC)

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

Note

Para a configuração do CDC no Amazon RDS, o utilizador que executa o script de configuração do utilitário deve ser o utilizador mestre do RDS, ou deve ter sido concedido EXECUTE em msdb.dbo.rds_cdc_enable_db pelo utilizador mestre do RDS. Deve primeiro criar o utilizador em msdb antes de conceder esta permissão:

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

Esta permissão extra não é necessária para a configuração do acompanhamento de alterações.

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 Preparar o SQL Server para a ingestão usando o script de objetos utilitários.