Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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