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
Magazijn in Microsoft Fabric
SQL-database in Microsoft Fabric Preview
Verleent machtigingen voor een schema.
Transact-SQL syntaxis-conventies
Syntax
GRANT permission [ ,...n ] ON SCHEMA :: schema_name
TO database_principal [ ,...n ]
[ WITH GRANT OPTION ]
[ AS granting_principal ]
Arguments
permission
Hiermee geeft u een machtiging op die kan worden verleend in een schema. Zie de sectie Opmerkingen verderop in dit onderwerp voor een lijst met machtigingen.
OP SCHEMA ::schema_name
Hiermee geeft u het schema op waarop de machtiging wordt verleend. De kwalificatie voor het bereik :: is vereist.
database_principal
Hiermee geeft u de principal aan waaraan de machtiging wordt verleend. Een van de volgende:
- database user
- database role
- application role
- databasegebruiker die is toegewezen aan een Windows-aanmelding
- databasegebruiker die is toegewezen aan een Windows-groep
- databasegebruiker die is toegewezen aan een certificaat
- databasegebruiker die is toegewezen aan een asymmetrische sleutel
- databasegebruiker die niet is toegewezen aan een server-principal.
GRANT OPTION
Geeft aan dat de principal ook de mogelijkheid krijgt om de opgegeven machtiging aan andere principals te verlenen.
AS granting_principal
Hiermee geeft u een principal op waaruit de principal die deze query uitvoert, het recht heeft om de machtiging te verlenen. Een van de volgende:
- database user
- database role
- application role
- databasegebruiker die is toegewezen aan een Windows-aanmelding
- databasegebruiker die is toegewezen aan een Windows-groep
- databasegebruiker die is toegewezen aan een certificaat
- databasegebruiker die is toegewezen aan een asymmetrische sleutel
- databasegebruiker die niet is toegewezen aan een server-principal.
Remarks
Important
Een combinatie van ALTER- en REFERENCE-machtigingen in sommige gevallen kan de verlenende gebruiker toestaan om gegevens te bekijken of niet-geautoriseerde functies uit te voeren. Bijvoorbeeld: Een gebruiker met de machtiging ALTER voor een tabel en EEN VERWIJZINGsmachtiging voor een functie kan een berekende kolom maken via een functie en deze laten uitvoeren. In dit geval moet de gebruiker ook een SELECT-machtiging hebben voor de berekende kolom.
Een schema is een beveiligbaar databaseniveau dat is opgenomen in de database die bovenliggend is in de machtigingshiërarchie. De meest specifieke en beperkte machtigingen die kunnen worden verleend voor een schema, worden hieronder vermeld, samen met de meer algemene machtigingen die ze bevatten door implicatie.
| Schema permission | Impliciet door schemamachtiging | Impliciet door databasemachtiging |
|---|---|---|
| ALTER | CONTROL | EEN SCHEMA WIJZIGEN |
| CONTROL | CONTROL | CONTROL |
| CREATE SEQUENCE | ALTER | EEN SCHEMA WIJZIGEN |
| DELETE | CONTROL | DELETE |
| EXECUTE | CONTROL | EXECUTE |
| INSERT | CONTROL | INSERT |
| REFERENCES | CONTROL | REFERENCES |
| SELECT | CONTROL | SELECT |
| TAKE OWNERSHIP | CONTROL | CONTROL |
| UPDATE | CONTROL | UPDATE |
| WIJZIGINGEN BIJHOUDEN WEERGEVEN | CONTROL | CONTROL |
| VIEW DEFINITION | CONTROL | VIEW DEFINITION |
Caution
Een gebruiker met alter-machtigingen voor een schema kan eigendomsketening gebruiken voor toegang tot beveiligbare objecten in andere schema's, waaronder beveiligbare objecten waarvoor die gebruiker expliciet de toegang wordt geweigerd. Dit komt doordat eigendomsketen machtigingencontroles omzeilt op objecten waarnaar wordt verwezen wanneer ze eigendom zijn van de principal die eigenaar is van de objecten die ernaar verwijzen. Een gebruiker met alter-machtigingen voor een schema kan procedures, synoniemen en weergaven maken die eigendom zijn van de eigenaar van het schema. Deze objecten hebben toegang (via eigendomskoppeling) tot informatie in andere schema's die eigendom zijn van de eigenaar van het schema. Indien mogelijk moet u voorkomen dat u ALTER-machtigingen voor een schema verleent als de eigenaar van het schema ook eigenaar is van andere schema's.
Dit probleem kan zich bijvoorbeeld voordoen in de volgende scenario's. In deze scenario's wordt ervan uitgegaan dat een gebruiker, ook wel U1 genoemd, de machtiging ALTER heeft voor het S1-schema. De gebruiker U1 heeft geen toegang tot een tabelobject, T1 genoemd, in het schema S2. Het S1-schema en het S2-schema zijn eigendom van dezelfde eigenaar.
De gebruiker U1 heeft de machtiging CREATE PROCEDURE voor de database en de EXECUTE-machtiging voor het S1-schema. Daarom kan de gebruiker U1 een opgeslagen procedure maken en vervolgens toegang krijgen tot het geweigerde object T1 in de opgeslagen procedure.
De gebruiker U1 heeft de machtiging SYNONIEM MAKEN voor de database en de SELECT-machtiging voor het S1-schema. Daarom kan de gebruiker U1 een synoniem maken in het S1-schema voor het geweigerde object T1 en vervolgens toegang krijgen tot het geweigerde object T1 met behulp van het synoniem.
De gebruiker U1 heeft de machtiging CREATE VIEW voor de database en de SELECT-machtiging voor het S1-schema. Daarom kan de gebruiker U1 een weergave maken in het S1-schema om gegevens op te vragen van het geweigerde object T1 en vervolgens toegang te krijgen tot het geweigerde object T1 met behulp van de weergave.
Permissions
De grantor (of de principal die is opgegeven met de AS-optie) moet de machtiging zelf hebben met GRANT OPTION of een hogere machtiging die impliceert dat de machtiging wordt verleend.
Als u de AS-optie gebruikt, zijn deze aanvullende vereisten van toepassing.
| AS granting_principal | Aanvullende machtiging vereist |
|---|---|
| Database user | IMITATIE-machtiging voor de gebruiker, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverfunctie sysadmin. |
| Databasegebruiker die is toegewezen aan een Windows-aanmelding | IMITATIE-machtiging voor de gebruiker, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverfunctie sysadmin. |
| Databasegebruiker die is toegewezen aan een Windows-groep | Lidmaatschap van de Windows-groep, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin. |
| Databasegebruiker die is toegewezen aan een certificaat | Lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin. |
| Databasegebruiker die is toegewezen aan een asymmetrische sleutel | Lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin. |
| Databasegebruiker die niet is toegewezen aan een server-principal | IMITATIE-machtiging voor de gebruiker, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverfunctie sysadmin. |
| Database role | ALTER-machtiging voor de rol, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin. |
| Application role | ALTER-machtiging voor de rol, lidmaatschap van de db_securityadmin vaste databaserol, lidmaatschap van de db_owner vaste databaserol of lidmaatschap van de vaste serverrol sysadmin. |
Objecteigenaren kunnen machtigingen verlenen voor de objecten die ze bezitten. Principals met CONTROL-machtigingen voor een beveiligbaar apparaat kunnen machtigingen verlenen voor die beveiligbare.
Grantees van de machtiging CONTROL SERVER, zoals leden van de vaste serverfunctie sysadmin, kunnen elke machtiging verlenen voor elk beveiligbaar apparaat op de server. Grantees van CONTROL-machtigingen voor een database, zoals leden van de db_owner vaste databaserol, kunnen elke machtiging verlenen voor elke beveiligbare database in de database. Grantees of CONTROL permission on a schema can grant any permission on any object within the schema.
Examples
A. INSERT-machtiging verlenen voor schema HumanResources aan gast
GRANT INSERT ON SCHEMA :: HumanResources TO guest;
B. SELECT-machtiging verlenen voor schemapersoon aan databasegebruiker WilJo
GRANT SELECT ON SCHEMA :: Person TO WilJo WITH GRANT OPTION;
See Also
Weigeringsschemamachtigingen (Transact-SQL)
Schemamachtigingen intrekken (Transact-SQL)
GRANT (Transact-SQL)
Machtigingen (Database Engine)
Principals (Databasemotor)
CERTIFICAAT MAKEN (Transact-SQL)
ASYMMETRISCHE SLEUTEL (Transact-SQL) maken
TOEPASSINGSROL MAKEN (Transact-SQL)
Encryption Hierarchy
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)