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
SQL-database in Microsoft Fabric Preview
Hiermee worden machtigingen geweigerd voor een lid van de OBJECT-klasse van beveiligbare objecten. Dit zijn de leden van de OBJECT-klasse: tabellen, weergaven, tabelwaardefuncties, opgeslagen procedures, uitgebreide opgeslagen procedures, scalaire functies, statistische functies, servicewachtrijen en synoniemen.
Transact-SQL syntaxis-conventies
Syntax
DENY <permission> [ ,...n ] ON
[ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]
TO <database_principal> [ ,...n ]
[ CASCADE ]
[ AS <database_principal> ]
<permission> ::=
ALL [ PRIVILEGES ] | permission [ ( column [ ,...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
Arguments
permission
Hiermee geeft u een machtiging op die kan worden geweigerd voor een in schema opgenomen object. Zie de sectie Opmerkingen verderop in dit onderwerp voor een lijst met machtigingen.
ALL
Het weigeren van ALL weigert niet alle mogelijke machtigingen. Het weigeren van ALL is gelijk aan het weigeren 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.
PRIVILEGES
Opgenomen voor ANSI-92-naleving. Het gedrag van ALL wordt niet gewijzigd.
column
Hiermee geeft u de naam op van een kolom in een tabel, weergave of tabelwaardefunctie waarvoor de machtiging wordt geweigerd. De haakjes ( ) zijn vereist. Alleen SELECT-, VERWIJZINGEN- en UPDATE-machtigingen kunnen worden geweigerd voor een kolom.
kolom kan worden opgegeven in de machtigingscomponent of na de beveiligbare naam.
Caution
Een DENY op tabelniveau heeft geen prioriteit boven een GRANT op kolomniveau. Deze inconsistentie in de machtigingshiërarchie is behouden voor achterwaartse compatibiliteit. In SQL Server is dit gedrag anders als de server is geconfigureerd voor uitvoering met de configuratie van de server met algemene criteriacompatibiliteit. Dit moet echter in het algemeen alleen met voorzichtigheid worden gebruikt en niet als een algemene praktijk.
ON [ OBJECT :: ] [ schema_name ] .object_name
Hiermee geeft u het object waarop de machtiging wordt geweigerd. De objectterm is optioneel als schema_name is opgegeven. Als de OBJECT-woordgroep wordt gebruikt, is de scopekwalificatie (::) 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 op waarop de machtiging wordt geweigerd.
CASCADE
Geeft aan dat de machtiging die wordt geweigerd, ook wordt geweigerd aan andere principals waaraan deze principal is verleend.
AS-database_principal <>
Hiermee geeft u een principal op waaruit de principal die deze query uitvoert, het recht heeft om de machtiging te weigeren.
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.
Remarks
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 geweigerd, worden vermeld in de volgende tabel, samen met de meer algemene machtigingen die ze bevatten door implicatie.
| Object permission | 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 |
| WIJZIGINGEN BIJHOUDEN WEERGEVEN | CONTROL | WIJZIGINGEN BIJHOUDEN WEERGEVEN |
| VIEW DEFINITION | CONTROL | VIEW DEFINITION |
Permissions
Hiervoor is de CONTROL-machtiging voor het object vereist.
Als u de AS-component gebruikt, moet de opgegeven principal eigenaar zijn van het object waarvoor machtigingen worden geweigerd.
Examples
In de volgende voorbeelden wordt de AdventureWorks-database gebruikt.
A. Select-machtiging voor een tabel weigeren
In het volgende voorbeeld wordt SELECT de machtiging voor de gebruiker RosaQdM in de tabel Person.Addressgeweigerd.
DENY SELECT ON OBJECT::Person.Address TO RosaQdM;
GO
B. Execute-machtiging weigeren voor een opgeslagen procedure
In het volgende voorbeeld wordt de machtiging voor de opgeslagen procedure HumanResources.uspUpdateEmployeeHireInfo geweigerd voor een toepassingsrol EXECUTE met de naam Recruiting11.
DENY EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo
TO Recruiting11;
GO
C. Machtiging VERWIJZINGEN weigeren voor een weergave met TRAPSGEWIJS
In het volgende voorbeeld REFERENCES wordt de machtiging voor de kolom BusinessEntityID in de weergave HumanResources.vEmployee geweigerd voor de gebruiker Wanida met CASCADE.
DENY REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee
TO Wanida CASCADE;
GO
See Also
objectmachtigingen verlenen (Transact-SQL)
Objectmachtigingen intrekken (Transact-SQL)
objectcatalogusweergaven (Transact-SQL)
Machtigingen (Database Engine)
Principals (Databasemotor)
Securables
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)