Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Analytics-eindpunt in Microsoft Fabric
Warehouse in Microsoft Fabric
SQL-database in Microsoft Fabric
Verleent machtigingen voor een tabel, weergave, tabelwaardefunctie, opgeslagen procedure, uitgebreide opgeslagen procedure, scalaire functie, statistische functie, servicewachtrij of synoniem.
Transact-SQL syntaxis-conventies
Syntaxis
GRANT <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column_name [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ WITH GRANT OPTION ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column_name [ ,...n ] ) ]
<database_principal> ::=
Database_user
| Database_role
| Application_role
| Database_user_mapped_to_Windows_User
| Database_user_mapped_to_Windows_Group
| Database_user_mapped_to_certificate
| Database_user_mapped_to_asymmetric_key
| Database_user_with_no_login
Argumenten
machtiging
Hiermee geeft u een machtiging op die kan worden verleend voor een schema-ingesloten object. Zie Opmerkingen voor een lijst met machtigingen.
ALLE
Het verlenen van ALL verleent niet alle mogelijke machtigingen. Het verlenen van ALL is gelijk aan het verlenen van alle ANSI-92-machtigingen die van toepassing zijn op het opgegeven object. De betekenis van ALL varieert als volgt:
- Scalaire functiemachtigingen: EXECUTE, REFERENCES.
- Functiemachtigingen met tabelwaarde: DELETE, INSERT, REFERENCES, SELECT, UPDATE.
- Machtigingen voor opgeslagen procedures: EXECUTE.
- Tabelmachtigingen: VERWIJDEREN, INVOEGEN, VERWIJZINGEN, SELECTEREN, BIJWERKEN.
- Machtigingen weergeven: VERWIJDEREN, INVOEGEN, VERWIJZINGEN, SELECTEREN, BIJWERKEN.
Waarschuwing
De machtiging ALL is afgeschaft en wordt alleen onderhouden voor compatibiliteit.
PRIVILEGES
Opgenomen voor ANSI-92-naleving. Het gedrag van ALL wordt niet gewijzigd.
column_name
Hiermee geeft u de naam van een kolom in een tabel, weergave of tabelwaardefunctie op waarvoor de machtiging wordt verleend. De haakjes ( ) zijn vereist. Alleen SELECT-, VERWIJZINGEN-, UPDATE- en UNMASK-machtigingen kunnen worden verleend voor een kolom. column_name kan worden opgegeven in de machtigingscomponent of na de beveiligbare naam.
Waarschuwing
Een DENY op tabelniveau heeft geen prioriteit boven een GRANT op kolomniveau. Deze inconsistentie in de machtigingshiërarchie is behouden voor achterwaartse compatibiliteit.
ON [ OBJECT :: ] [ schema_name ] . object_name
Hiermee geeft u het object waarop de machtiging wordt verleend. De objectterm is optioneel als schema_name is opgegeven. Als de OBJECT-woordgroep wordt gebruikt, is de bereikkwalificatie (::) vereist. Als schema_name niet is opgegeven, wordt het standaardschema gebruikt. Als schema_name is opgegeven, is de kwalificatie voor schemabereik (.) vereist.
TO <database_principal>
Hiermee geeft u de principal aan waaraan de machtiging wordt verleend.
MET DE OPTIE VERLENEN
Geeft aan dat de principal ook de mogelijkheid krijgt om de opgegeven machtiging aan andere principals te verlenen.
AS-database_principal <>
Hiermee geeft u een principal op waaruit de principal die deze query uitvoert, het recht heeft om de machtiging te verlenen.
Database_user
Hiermee geeft u een databasegebruiker.
Database_role
Hiermee geeft u een databaserol op.
Application_role
Hiermee geeft u een toepassingsrol op.
Database_user_mapped_to_Windows_User
Hiermee geeft u een databasegebruiker die is toegewezen aan een Windows-gebruiker.
Database_user_mapped_to_Windows_Group
Hiermee geeft u een databasegebruiker die is toegewezen aan een Windows-groep.
Database_user_mapped_to_certificate
Hiermee geeft u een databasegebruiker die is toegewezen aan een certificaat.
Database_user_mapped_to_asymmetric_key
Hiermee geeft u een databasegebruiker die is toegewezen aan een asymmetrische sleutel.
Database_user_with_no_login
Hiermee geeft u een databasegebruiker zonder bijbehorende principal op serverniveau op.
Opmerkingen
Belangrijk
Een combinatie van ALTER
machtigingen en REFERENCE
machtigingen kan in sommige gevallen toestaan dat de grantee gegevens kan bekijken of niet-geautoriseerde functies kan uitvoeren. Bijvoorbeeld: Een gebruiker met ALTER
machtigingen voor een tabel en REFERENCE
machtiging voor een functie kan een berekende kolom maken over een functie en deze laten uitvoeren. In dit geval heeft de gebruiker ook toestemming nodig SELECT
voor de berekende kolom.
Informatie over objecten is zichtbaar in verschillende catalogusweergaven. Zie Objectcatalogusweergaven (Transact-SQL) voor meer informatie.
Een object is een beveiligbaar op schemaniveau dat is opgenomen in het schema dat het bovenliggende object in de machtigingshiërarchie is. De meest specifieke en beperkte machtigingen die voor een object kunnen worden verleend, worden vermeld in de volgende tabel, samen met de meer algemene machtigingen die ze bevatten door implicatie.
Objectmachtiging | Impliciet op objectmachtiging | Impliciet door schemamachtiging |
---|---|---|
ALTER |
CONTROL |
ALTER |
CONTROL |
CONTROL |
CONTROL |
DELETE |
CONTROL |
DELETE |
EXECUTE |
CONTROL |
EXECUTE |
INSERT |
CONTROL |
INSERT |
RECEIVE |
CONTROL |
CONTROL |
REFERENCES |
CONTROL |
REFERENCES |
SELECT |
RECEIVE |
SELECT |
TAKE OWNERSHIP |
CONTROL |
CONTROL |
UPDATE |
CONTROL |
UPDATE |
VIEW CHANGE TRACKING |
CONTROL |
VIEW CHANGE TRACKING |
VIEW DEFINITION |
CONTROL |
VIEW DEFINITION |
Schemabinding wordt niet ondersteund in Azure Synapse Analytics, wat kan leiden tot onverwacht gedrag wanneer onderliggende objecten worden gewijzigd en machtigingen zijn verleend aan een weergave. Zie T-SQL-weergaven met toegewezen SQL-pool en serverloze SQL-pool in Azure Synapse Analytics voor meer informatie.
Machtigingen
De grantor (of de principal die is opgegeven met de AS-optie) moet de machtiging zelf hebben of GRANT OPTION
een hogere machtiging die impliceert dat de machtiging wordt verleend.
Als u de AS-optie gebruikt, zijn de volgende aanvullende vereisten van toepassing.
AS | Aanvullende machtiging vereist |
---|---|
Databasegebruiker |
IMPERSONATE machtiging voor de gebruiker, lidmaatschap van de db_securityadmin rol vaste database, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de sysadmin vaste serverfunctie. |
Databasegebruiker die is toegewezen aan een Windows-aanmelding |
IMPERSONATE machtiging voor de gebruiker, lidmaatschap van de db_securityadmin rol vaste database, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de sysadmin vaste serverfunctie. |
Databasegebruiker die is toegewezen aan een Windows-groep | Lidmaatschap van de Windows-groep, lidmaatschap van de rol van de db_securityadmin vaste database, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de sysadmin vaste serverfunctie. |
Databasegebruiker die is toegewezen aan een certificaat | Lidmaatschap van de db_securityadmin rol vaste database, lidmaatschap van de rol van de db_owner vaste database of lidmaatschap van de sysadmin vaste serverfunctie. |
Databasegebruiker die is toegewezen aan een asymmetrische sleutel | Lidmaatschap van de db_securityadmin rol vaste database, lidmaatschap van de rol van de db_owner vaste database of lidmaatschap van de sysadmin vaste serverfunctie. |
Databasegebruiker die niet is toegewezen aan een server-principal |
IMPERSONATE machtiging voor de gebruiker, lidmaatschap van de db_securityadmin rol vaste database, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de sysadmin vaste serverfunctie. |
Databaserol |
ALTER machtiging voor de rol, lidmaatschap van de rol van de db_securityadmin vaste database, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de sysadmin vaste serverfunctie. |
Toepassingsrol |
ALTER machtiging voor de rol, lidmaatschap van de rol van de db_securityadmin vaste database, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de sysadmin vaste serverfunctie. |
Voorbeelden
Eén. SELECT-machtiging verlenen voor een tabel
In het volgende voorbeeld wordt toestemming verleend SELECT
aan de gebruiker RosaQdM
in de tabel Person.Address
in de AdventureWorks2022
database.
Dit voorbeeld, zoals geschreven, werkt niet in Microsoft Fabric omdat er een gebruiker wordt gebruikt voor een geverifieerde SQL-aanmelding, maar hetzelfde voorbeeld zou werken voor een Microsoft Entra ID Fabric-gebruiker, bijvoorbeeld RosaQdM@contoso.com
.
GRANT SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. EXECUTE-machtiging verlenen voor een opgeslagen procedure
Het volgende voorbeeld verleent EXECUTE
machtigingen voor opgeslagen procedures HumanResources.uspUpdateEmployeeHireInfo
aan een toepassingsrol met de naam Recruiting11
.
USE AdventureWorks2022;
GRANT EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. VERWIJZINGEN machtigen voor een weergave met DE OPTIE VERLENEN
Het volgende voorbeeld verleent REFERENCES
machtigingen voor de kolom BusinessEntityID
in weergave HumanResources.vEmployee
aan de gebruiker Wanida
met GRANT OPTION
.
Dit voorbeeld, zoals geschreven, werkt niet in Microsoft Fabric omdat er een gebruiker wordt gebruikt voor een geverifieerde SQL-aanmelding, maar hetzelfde voorbeeld zou werken voor een Microsoft Entra ID Fabric-gebruiker, bijvoorbeeld Wanida@contoso.com
.
GRANT REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida WITH GRANT OPTION;
GO
D. SELECT-machtiging verlenen aan een tabel zonder de objectzin te gebruiken
In het volgende voorbeeld wordt toestemming verleend SELECT
aan de gebruiker RosaQdM
in de tabel Person.Address
in de AdventureWorks2022
database.
Dit voorbeeld, zoals geschreven, werkt niet in Microsoft Fabric omdat er een gebruiker wordt gebruikt voor een geverifieerde SQL-aanmelding, maar hetzelfde voorbeeld zou werken voor een Microsoft Entra ID Fabric-gebruiker, bijvoorbeeld RosaQdM@contoso.com
.
GRANT SELECT ON Person.Address TO RosaQdM;
GO
E. SELECT-machtiging verlenen voor een tabel aan een domeinaccount
In het volgende voorbeeld wordt toestemming verleend SELECT
aan de gebruiker AdventureWorks2022\RosaQdM
in de tabel Person.Address
in de AdventureWorks2022
database.
Dit voorbeeld zoals geschreven werkt niet in Microsoft Fabric omdat het een domeinaccount gebruikt, maar hetzelfde voorbeeld zou werken voor een Microsoft Entra ID Fabric-gebruiker, bijvoorbeeld RosaQdM@contoso.com
.
GRANT SELECT ON Person.Address TO [AdventureWorks2022\RosaQdM];
GO
F. EXECUTE-machtiging verlenen aan een procedure voor een rol
In het volgende voorbeeld wordt een rol gemaakt en wordt vervolgens toestemming verleend EXECUTE
aan de rol voor procedure uspGetBillOfMaterials
in de AdventureWorks2022
database.
CREATE ROLE newrole ;
GRANT EXECUTE ON dbo.uspGetBillOfMaterials TO newrole ;
GO
G. UNMASK-machtiging verlenen voor een kolom
In het volgende voorbeeld verleent u de UNMASK
machtiging, onderdeel van dynamische gegevensmaskering, voor de kolom email
in de tabel Data.Membership
aan de gebruiker OutreachCoordinator
.
Dynamische gegevensmaskering wordt momenteel niet ondersteund in Microsoft Fabric.
GRANT UNMASK ON OBJECT::Data.Membership (email) to OutreachCoordinator;
GO
Verwante inhoud
- Objectmachtigingen Weigeren (Transact-SQL)
- Objectmachtigingen intrekken (Transact-SQL)
- objectcatalogusweergaven (Transact-SQL)
- Machtigingen (Database Engine)
- Principals (Database Engine)
- beveiligbare
- sys.fn_builtin_permissions (Transact-SQL)
- HAS_PERMS_BY_NAME (Transact-SQL)
- sys.fn_my_permissions (Transact-SQL)
- Dynamische gegevensmaskering
- Row-Level beveiliging