Requisiti utente del database di Microsoft SQL Server

Informazioni sui privilegi da concedere all'utente del database di Microsoft SQL Server che si prevede di usare per l'inserimento in Azure Databricks.

Databricks consiglia di creare un utente di database usato esclusivamente per l'inserimento di Databricks.

Concedere privilegi di database

Le tabelle di questa sezione elencano i privilegi che l'utente del database deve avere, a seconda della variazione del database. Questi privilegi sono necessari se si usa Change Data Capture (CDC) o il rilevamento delle modifiche. Le tabelle mostrano anche i comandi per concedere ogni privilegio.

Database non Azure

Privilegi obbligatori Dove eseguire i comandi Comandi da assegnare
VIEW ANY DATABASE Database master Eseguire il comando T-SQL seguente nel database master:
GRANT VIEW ANY DATABASE TO DATABASE_USER;
Accesso in lettura alle tabelle e alle viste di sistema seguenti nel database master:
  • 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
Database master Eseguire i comandi T-SQL seguenti nel database master:
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;
Impostare le autorizzazioni di esecuzione per le seguenti stored procedure di sistema nel database master:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Database master Eseguire i comandi T-SQL seguenti nel database da inserire:
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 Database che desideri ingerire Eseguire il comando T-SQL seguente nel database da inserire:
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;
In SQL Server 2022 e versioni successive, è possibile usare invece l'autorizzazione VIEW DATABASE PERFORMANCE STATE con ambito più ristretto:
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;
SELECT sugli schemi e le tabelle che vuoi acquisire. Database che desideri ingerire Eseguire i comandi T-SQL seguenti per ogni schema e tabella da inserire:
GRANT SELECT ON schema::SCHEMA_NAME TO DATABASE_USER;
GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;
SELECT privilegi per le tabelle e le viste di sistema seguenti nel database che si desidera inserire:
  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes
Database che desideri ingerire Eseguire i comandi T-SQL seguenti nel database da inserire:
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;

Database SQL di Microsoft Azure

Privilegi Dove eseguire i comandi Comandi
Appartenenza al ruolo del server seguente nel database master in modo che l'utente possa accedere al master:
  • ##MS_DatabaseConnector##
Database master Eseguire il comando T-SQL seguente nel database master:
ALTER ROLE ##MS_DatabaseConnector## ADD MEMBER DATABASE_USER;
Accesso in lettura alle tabelle e alle viste di sistema seguenti nel database che si desidera inserire:
  • 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
Database che desideri ingerire Eseguire i comandi T-SQL seguenti nel database da inserire:
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 Database che desideri ingerire Eseguire il comando T-SQL seguente nel database da inserire:
GRANT VIEW DATABASE STATE TO DATABASE_USER;
In SQL Server 2022 e versioni successive, è possibile usare invece l'autorizzazione VIEW DATABASE PERFORMANCE STATE con ambito più ristretto:
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Istanza SQL gestita di Azure

Privilegi Dove eseguire i comandi Comandi
Accesso in lettura alle tabelle e alle viste di sistema seguenti nel database che si desidera inserire:
  • 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
Database che desideri ingerire Eseguire i comandi T-SQL seguenti nel database da inserire:
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;
Visualizzare e leggere l'accesso ai database:
  • VIEW ANY DATABASE
  • sys.databases
  • sys.change_tracking_databases
Database master Eseguire i comandi T-SQL seguenti nel database master:
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;
Esegui le autorizzazioni sulle seguenti stored procedure di sistema:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Database master Eseguire i comandi T-SQL seguenti nel database master:
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 Database che desideri ingerire Eseguire il comando T-SQL seguente nel database da inserire:
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;
In SQL Server 2022 e versioni successive, è invece possibile usare l'autorizzazione VIEW DATABASE PERFORMANCE STATE con ambito più ristretto:
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Servizio Amazon RDS per SQL Server

In Amazon RDS per SQL Server, le concessioni di database master non sono necessarie. Gli account di accesso di SQL Server ricevono automaticamente l'accesso alle viste di sistema e alle stored procedure necessarie in master tramite il ruolo public. Non è possibile creare utenti nel master database in Amazon RDS.

Privilegi obbligatori Dove eseguire i comandi Comandi da assegnare
SELECT privilegi per le viste di sistema seguenti nel database che si desidera inserire:
  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes
Database che desideri ingerire Eseguire i comandi T-SQL seguenti nel database da inserire:
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 sugli schemi e le tabelle che vuoi acquisire. Database che desideri ingerire Eseguire il comando T-SQL seguente per ogni schema o tabella da inserire:
GRANT SELECT ON SCHEMA::SCHEMA_NAME TO DATABASE_USER;
-- Or for individual tables:
GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;

Requisiti dei privilegi per la cattura delle modifiche dei dati (CDC)

Se CDC è abilitato, sono necessari privilegi aggiuntivi per gli oggetti di supporto DDL. Vedere Preparare SQL Server per l'inserimento usando lo script degli oggetti di utilità.

Note

Per la configurazione di CDC su Amazon RDS, l'utente che esegue lo script di configurazione dell'utilità deve essere l'utente master di RDS oppure deve vedersi concessi EXECUTE su msdb.dbo.rds_cdc_enable_db dall'utente master. Prima di concedere questa autorizzazione, è necessario creare l'utente in msdb :

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

Questa autorizzazione aggiuntiva non è necessaria per la configurazione del rilevamento delle modifiche.

Requisiti dei privilegi per il monitoraggio delle modifiche

Se il rilevamento delle modifiche è abilitato, sono necessari privilegi aggiuntivi per gli oggetti di supporto DDL. Vedere Preparare SQL Server per l'inserimento usando lo script degli oggetti di utilità.