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 |
|---|---|---|
| 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:
| 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:
| 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; |
| Banco de dados que você deseja ingerir | Execute o seguinte comando T-SQL no banco de dados que você deseja importar: SQL No SQL Server 2022 e versões posteriores, você pode usar a permissão SQL |
| 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; |
| 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:
| 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:
| 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; |
| Banco de dados que você deseja ingerir | Execute o seguinte comando T-SQL no banco de dados que você deseja importar: SQL No SQL Server 2022 e versões posteriores, você pode usar a permissão SQL |
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:
| 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:
| 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:
| 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; |
| Banco de dados que você deseja ingerir | Execute o seguinte comando T-SQL no banco de dados que você deseja importar: SQL No SQL Server 2022 e versões posteriores, você pode usar a permissão SQL |
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 |
|---|---|---|
| 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 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.
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:
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.