Freigeben über


Widerrufen von Berechtigungen für eine XML-Schemaauflistung

Die Berechtigung zum Erstellen einer XML-Schemaauflistung kann mithilfe einer der folgenden Aktionen widerrufen werden:

  • Widerrufen Sie die ALTER-Berechtigung für das relationale Schema. Anschließend kann der Prinzipal keine XML-Schemaauflistung im relationalen Schema erstellen. Jedoch kann der Prinzipal dies weiterhin in anderen relationalen Schemas in derselben Datenbank tun.

  • Widerrufen Sie die ALTER ANY SCHEMA-Berechtigung für die Datenbank für das Hauptkonto. Dann kann der Hauptbenutzer keine XML-Schemaauflistung irgendwo in der Datenbank erstellen.

  • Widerrufen Sie die BERECHTIGUNG CREATE XML SCHEMA COLLECTION oder ALTER XML SCHEMA COLLECTION für die Datenbank für den Prinzipal. Dadurch wird verhindert, dass der Prinzipal eine XML-Schemaauflistung innerhalb der Datenbank importiert. Das Widerrufen der ALTER- oder CONTROL-Berechtigung für die Datenbank hat die gleiche Auswirkung.

Widerrufen von Berechtigungen für ein vorhandenes XML-Schemaauflistungsobjekt

Im Folgenden sind die Berechtigungen aufgeführt, die für eine XML-Schemaauflistung und die Ergebnisse widerrufen werden können:

  • Durch das Widerrufen der ALTER-Berechtigung wird die Fähigkeit eines Prinzipals zum Ändern des Inhalts der XML-Schemaauflistung widerrufen.

  • Durch das Widerrufen der BERECHTIGUNG TAKE OWNERSHIP wird die Fähigkeit eines Prinzipals zum Übertragen des Besitzes der XML-Schemaauflistung widerrufen.

  • Durch das Widerrufen der REFERENCES-Berechtigung wird die Möglichkeit eines Benutzers widerrufen, die XML-Schemaauflistung zum Typisieren oder Einschränken von XML-Typspalten in Tabellen, Ansichten und Parametern zu verwenden. Außerdem wird die Berechtigung zum Verweisen auf diese Schemasammlung aus anderen XML-Schemasammlungen widerrufen.

  • Durch das Entziehen der VIEW DEFINITION-Berechtigung wird einem Hauptbenutzer die Berechtigung, den Inhalt einer XML-Schemasammlung anzuzeigen, entzogen.

  • Durch das Widerrufen der EXECUTE-Berechtigung wird einem Prinzipal die Fähigkeit entzogen, Werte in Spalten, Variablen und Parametern einzufügen oder zu aktualisieren, die durch die XML-Auflistung typisiert oder eingeschränkt sind. Außerdem wird die Möglichkeit zum Abfragen solcher XML-Typspalten , -Variablen oder -Parameter widerrufen.

Beispiele

Die Szenarien in den folgenden Beispielen veranschaulichen, wie XML-Schemaberechtigungen funktionieren. Jedes Beispiel erstellt die erforderliche Testdatenbank, relationale Schemas und Anmeldungen. Diese Anmeldungen erhalten die erforderlichen Berechtigungen für die XML-Schemasammlung. Jedes Beispiel führt die erforderliche Bereinigung am Ende durch.

Ein. Widerrufen von Berechtigungen zum Erstellen einer XML-Schemaauflistung

In diesem Beispiel wird eine Anmeldung und eine Beispieldatenbank erstellt. Außerdem wird in der Datenbank ein relationales Schema hinzugefügt. Zunächst wird die ALTER-Berechtigung für relationale Schemata und andere erforderliche Berechtigungen erteilt, um XML-Schemasammlungen zu erstellen. Im Beispiel wird dann die ALTER-Berechtigung für eines der relationalen Schemas in der Datenbank widerrufen. Dadurch wird verhindert, dass die Anmeldung eine XML-Schemaauflistung erstellt.

setuser  
go  
create login TestLogin1 with password='SQLSvrPwd1'  
go  
create database SampleDBForSchemaPermissions  
go  
use SampleDBForSchemaPermissions  
go  
-- Create another relational schema in the db (in addition to dbo schema)  
CREATE SCHEMA myOtherDBSchema  
go  
CREATE USER TestLogin1  
go  
-- For TestLogin1 to create/import XML schema collection, following  
-- permission needed  
-- CREATE XML SCHEMA is a database level permission  
GRANT CREATE XML SCHEMA COLLECTION TO TestLogin1  
go  
GRANT ALTER ON SCHEMA::myOtherDBSchema TO TestLogin1  
go  
GRANT ALTER ON SCHEMA::dbo TO TestLogin1  
go  
-- Now TestLogin1 can import an XML schema collection in both relational schemas.  
setuser 'TestLogin1'  
go  
CREATE XML SCHEMA COLLECTION dbo.myTestSchemaCollection AS '<?xml version="1.0" encoding="UTF-8" ?>  
  
<xsd:schema targetNamespace="http://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
elementFormDefault="qualified">  
<xsd:element name="telephone" type="xsd:string" />  
</xsd:schema>'  
go  
-- TestLogin1 can create XML schema collection in myOtherDBSchema relational schema  
CREATE XML SCHEMA COLLECTION myOtherDBSchema.myTestSchemaCollection AS '<?xml version="1.0" encoding="UTF-8" ?>  
  
<xsd:schema targetNamespace="http://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
elementFormDefault="qualified">  
<xsd:element name="telephone" type="xsd:string" />  
</xsd:schema>'  
go  
-- Let us drop XML schema collections from both relational schemas  
DROP XML SCHEMA COLLECTION myOtherDBSchema.myTestSchemaCollection  
go  
DROP XML SCHEMA COLLECTION dbo.myTestSchemaCollection  
go  
-- now REVOKE permission from TestLogin1 to alter myOtherDBSchema  
setuser  
go  
REVOKE ALTER ON SCHEMA::myOtherDBSchema FROM TestLogin1  
go  
-- now TestLogin1 cannot create xml schema collection in myOtherDBSchema  
setuser 'TestLogin1'  
go  
CREATE XML SCHEMA COLLECTION myOtherDBSchema.myTestSchemaCollection AS '<?xml version="1.0" encoding="UTF-8" ?>  
<xsd:schema targetNamespace="http://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
elementFormDefault="qualified">  
<xsd:element name="telephone" type="xsd:string" />  
</xsd:schema>'  
go  
  
-- TestLogin1 can still create XML schema collections in dbo  
-- It cannot create XML schema collections anywhere in the database  
-- if we REVOKE CREATE XML SCHEMA COLLECTION permission  
SETUSER  
go  
REVOKE CREATE XML SCHEMA COLLECTION FROM TestLogin1  
go  
  
setuser 'TestLogin1'  
go  
-- the following now should fail  
CREATE XML SCHEMA COLLECTION dbo.myTestSchemaCollection AS '<?xml version="1.0" encoding="UTF-8" ?>  
<xsd:schema targetNamespace="http://schemas.adventure-works.com/Additional/ContactInfo"   
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"   
elementFormDefault="qualified">  
<xsd:element name="telephone" type="xsd:string" />  
</xsd:schema>'  
go  
  
-- Final cleanup  
SETUSER  
go  
USE master  
go  
DROP DATABASE SampleDBForSchemaPermissions  
go  
DROP LOGIN TestLogin1  
Go  

Siehe auch

XML-Daten (SQL Server)
Vergleichen von typisiertem XML mit nicht typisiertem XML
XML-Schemaauflistungen (SQL Server)
Anforderungen und Einschränkungen für XML-Schemasammlungen auf dem Server