Gebruikersvereisten voor Microsoft SQL Server-database

Ontdek welke bevoegdheden u moet toekennen aan de Microsoft SQL Server-databasegebruiker die u wilt gebruiken voor gegevensinvoer in Azure Databricks.

Databricks raadt u aan een databasegebruiker te maken die uitsluitend wordt gebruikt voor databricks-opname.

Databasebevoegdheden verlenen

De tabellen in deze sectie bevatten de bevoegdheden die de databasegebruiker moet hebben, afhankelijk van de databasevariatie. Deze bevoegdheden zijn vereist, ongeacht of u CDC (Change Data Capture) of wijzigingen bijhouden gebruikt. In de tabellen worden ook de opdrachten weergegeven om elke bevoegdheid te verlenen.

Niet-Azure-databases

Vereiste bevoegdheden Waar de opdrachten worden uitgevoerd Opdrachten die moeten worden verleend
VIEW ANY DATABASE Hoofddatabase Voer de volgende T-SQL-opdracht uit in de hoofddatabase:
GRANT VIEW ANY DATABASE TO DATABASE_USER;
Leestoegang tot de volgende systeemtabellen en -weergaven in de hoofddatabase:
  • 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
Hoofddatabase Voer de volgende T-SQL-opdrachten uit in de hoofddatabase:
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;
Voer machtigingen uit voor de volgende door het systeem opgeslagen procedures in de hoofddatabase:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Hoofddatabase Voer de volgende T-SQL-opdrachten uit in de database die u wilt opnemen:
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 die u wilt importeren Voer de volgende T-SQL-opdracht uit op de database die u wilt opnemen:
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;
In SQL Server 2022 en hoger kunt u in plaats daarvan de meer beperkte VIEW DATABASE PERFORMANCE STATE-machtiging gebruiken:
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;
SELECT in de schema's en tabellen die u wilt opnemen. Database die u wilt importeren Voer de volgende T-SQL-opdrachten uit voor elk schema en elke tabel die u wilt opnemen:
GRANT SELECT ON schema::SCHEMA_NAME TO DATABASE_USER;
GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;
SELECT bevoegdheden voor de volgende systeemtabellen en weergaven in de database die u wilt opnemen:
  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes
Database die u wilt importeren Voer de volgende T-SQL-opdrachten uit in de database die u wilt opnemen:
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;

Azure SQL Database

Bevoegdheden Waar de opdrachten worden uitgevoerd Opdrachten
Lidmaatschap van de volgende serverfunctie in de hoofddatabase, zodat de gebruiker toegang heeft tot de hoofddatabase:
  • ##MS_DatabaseConnector##
Hoofddatabase Voer de volgende T-SQL-opdracht uit in de hoofddatabase:
ALTER ROLE ##MS_DatabaseConnector## ADD MEMBER DATABASE_USER;
Leestoegang tot de volgende systeemtabellen en -weergaven in de database die u wilt opnemen:
  • 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 die u wilt importeren Voer de volgende T-SQL-opdrachten uit in de database die u wilt opnemen:
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 die u wilt importeren Voer de volgende T-SQL-opdracht uit op de database die u wilt opnemen:
GRANT VIEW DATABASE STATE TO DATABASE_USER;
In SQL Server 2022 en hoger kunt u in plaats daarvan de meer beperkte VIEW DATABASE PERFORMANCE STATE-machtiging gebruiken:
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Azure SQL Managed Instance (een beheerde database-instantie van Azure)

Bevoegdheden Waar de opdrachten worden uitgevoerd Opdrachten
Leestoegang tot de volgende systeemtabellen en -weergaven in de database die u wilt opnemen:
  • 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 die u wilt importeren Voer de volgende T-SQL-opdrachten uit in de database die u wilt opnemen:
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;
Toegang tot databases weergeven en lezen:
  • VIEW ANY DATABASE
  • sys.databases
  • sys.change_tracking_databases
Hoofddatabase Voer de volgende T-SQL-opdrachten uit op de hoofddatabase:
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;
Voer machtigingen uit voor de volgende door het systeem opgeslagen procedures:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Hoofddatabase Voer de volgende T-SQL-opdrachten uit op de hoofddatabase:
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 die u wilt importeren Voer de volgende T-SQL-opdracht uit op de database die u wilt opnemen:
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;
In SQL Server 2022 en hoger kunt u in plaats daarvan de meer beperkte VIEW DATABASE PERFORMANCE STATE-machtiging gebruiken:
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Amazon RDS voor SQL Server

Op Amazon RDS voor SQL Server zijn masterdatabasetoekenningen niet vereist. SQL Server aanmeldingen krijgen automatisch toegang tot de vereiste systeemweergaven en opgeslagen procedures in de master via de rol public. U kunt geen gebruikers maken in de master database op Amazon RDS.

Vereiste bevoegdheden Waar de opdrachten worden uitgevoerd Opdrachten die moeten worden verleend
SELECT bevoegdheden voor de volgende systeemweergaven in de database die u wilt opnemen:
  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes
Database die u wilt importeren Voer de volgende T-SQL-opdrachten uit in de database die u wilt opnemen:
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 in de schema's en tabellen die u wilt opnemen. Database die u wilt importeren Voer de volgende T-SQL-opdracht uit voor elk schema of elke tabel die u wilt opnemen:
GRANT SELECT ON SCHEMA::SCHEMA_NAME TO DATABASE_USER;
-- Or for individual tables:
GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;

Wijzigingen in de vereisten voor privileges voor het vastleggen van gegevens (CDC)

Als CDC is ingeschakeld, zijn er extra bevoegdheden vereist voor de DDL-ondersteuningsobjecten. Zie SQL Server voorbereiden voor invoer met het hulpprogramma-objectenscript.

Note

Voor het instellen van CDC op Amazon RDS moet de gebruiker die het setupscript van het hulpprogramma uitvoert de RDS-mastergebruiker zijn, of door de mastergebruiker gemachtigd zijn voor EXECUTE op msdb.dbo.rds_cdc_enable_db. U moet eerst de gebruiker aanmaken in msdb voordat u deze machtiging verleent:

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

Deze extra toestemming is niet vereist voor het instellen van het bijhouden van wijzigingen.

Vereisten voor machtiging tot bijhouden van wijzigingen

Als wijzigingen bijhouden is ingeschakeld, zijn er extra bevoegdheden vereist voor de DDL-ondersteuningsobjecten. Zie SQL Server voorbereiden voor invoer met het hulpprogramma-objectenscript.