Användarkrav för Microsoft SQL Server-databas

Lär dig vilka behörigheter som ska ge den Microsoft SQL Server-databasanvändare som du planerar att använda för att mata in i Azure Databricks.

Databricks rekommenderar att du skapar en databasanvändare som endast används för Databricks-inmatning.

Bevilja databasprivilegier

Tabellerna i det här avsnittet visar de behörigheter som databasanvändaren måste ha, beroende på databasvarianten. Dessa behörigheter krävs oavsett om du använder CDC (Change Data Capture) eller ändringsspårning. Tabellerna visar också kommandona för att bevilja varje behörighet.

Databaser som inte är Azure-databaser

Privilegier som krävs Var du ska köra kommandona Kommandon att bevilja
VIEW ANY DATABASE Huvuddatabas Kör följande T-SQL-kommando i huvuddatabasen:
GRANT VIEW ANY DATABASE TO DATABASE_USER;
Läs åtkomst till följande systemtabeller och vyer i huvuddatabasen:
  • 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
Huvuddatabas Kör följande T-SQL-kommandon i huvuddatabasen:
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;
Aktivera behörigheter för att köra följande systemlagrade procedurer i huvuddatabasen.
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Huvuddatabas Kör följande T-SQL-kommandon i databasen som du vill mata in:
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 Databas som du vill mata in Kör följande T-SQL-kommando på den databas som du vill mata in:
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;
I SQL Server 2022 och senare kan du använda den mer begränsade behörigheten VIEW DATABASE PERFORMANCE STATE i stället:
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;
SELECT på de scheman och tabeller som du vill importera. Databas som du vill mata in Kör följande T-SQL-kommandon för varje schema och tabell som du vill mata in:
GRANT SELECT ON schema::SCHEMA_NAME TO DATABASE_USER;
GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;
SELECT behörigheter för följande systemtabeller och vyer i databasen som du vill mata in:
  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes
Databas som du vill mata in Kör följande T-SQL-kommandon i databasen som du vill mata in:
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

Privilegier Var du ska köra kommandona Kommandon
Medlemskap i följande serverroll i huvuddatabasen så att användaren kan komma åt huvuddatabasen:
  • ##MS_DatabaseConnector##
Huvuddatabas Kör följande T-SQL-kommando i huvuddatabasen:
ALTER ROLE ##MS_DatabaseConnector## ADD MEMBER DATABASE_USER;
Läs åtkomst till följande systemtabeller och vyer i databasen som du vill mata in:
  • 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
Databas som du vill mata in Kör följande T-SQL-kommandon på den databas som du vill mata in:
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 Databas som du vill mata in Kör följande T-SQL-kommando på den databas som du vill mata in:
GRANT VIEW DATABASE STATE TO DATABASE_USER;
I SQL Server 2022 och senare kan du använda den mer begränsade behörigheten VIEW DATABASE PERFORMANCE STATE i stället:
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Hanterad instans i Azure SQL

Privilegier Var du ska köra kommandona Kommandon
Läs åtkomst till följande systemtabeller och vyer i databasen som du vill mata in:
  • 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
Databas som du vill mata in Kör följande T-SQL-kommandon på den databas som du vill mata in:
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;
Visa och läsa åtkomst till databaser:
  • VIEW ANY DATABASE
  • sys.databases
  • sys.change_tracking_databases
Huvuddatabas Kör följande T-SQL-kommandon i huvuddatabasen:
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;
Tilldela behörigheter för följande lagrade systemprocedurer:
  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100
Huvuddatabas Kör följande T-SQL-kommandon i huvuddatabasen:
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 Databas som du vill mata in Kör följande T-SQL-kommando på den databas som du vill mata in:
USE DATABASE_NAME;
GRANT VIEW DATABASE STATE TO DATABASE_USER;
I SQL Server 2022 och senare kan du använda den mer begränsade behörigheten VIEW DATABASE PERFORMANCE STATE i stället:
USE DATABASE_NAME;
GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER;

Amazon RDS för SQL Server

På Amazon RDS för SQL Server krävs inte huvuddatabasbidrag. SQL Server inloggningar får automatiskt åtkomst till nödvändiga systemvyer och lagrade procedurer i master via rollen public. Du kan inte skapa användare i master databasen på Amazon RDS.

Privilegier som krävs Var du ska köra kommandona Kommandon att bevilja
SELECT behörigheter för följande systemvyer i databasen som du vill mata in:
  • sys.indexes
  • sys.index_columns
  • sys.columns
  • sys.tables
  • sys.fulltext_index_columns
  • sys.fulltext_indexes
Databas som du vill mata in Kör följande T-SQL-kommandon i databasen som du vill mata in:
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 på de scheman och tabeller som du vill importera. Databas som du vill mata in Kör följande T-SQL-kommando för varje schema eller tabell som du vill mata in:
GRANT SELECT ON SCHEMA::SCHEMA_NAME TO DATABASE_USER;
-- Or for individual tables:
GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER;

Behörighetskrav för Change Data Capture (CDC)

Om CDC är aktiverat krävs ytterligare behörigheter för DDL-stödobjekten. Se Förbereda SQL Server för inmatning med hjälp av skriptet för verktygsobjekt.

Note

För konfiguration av CDC på Amazon RDS måste användaren som kör verktygets konfigurationsskript vara RDS-huvudanvändaren eller ha beviljats EXECUTEmsdb.dbo.rds_cdc_enable_db av huvudanvändaren. Du måste först skapa användaren i msdb innan du beviljar den här behörigheten:

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

Den här extra behörigheten krävs inte för konfiguration av ändringsspårning.

Krav på privilegier för ändringsspårning

Om ändringsspårning är aktiverat krävs ytterligare behörigheter för DDL-stödobjekten. Se Förbereda SQL Server för inmatning med hjälp av skriptet för verktygsobjekt.