Revoking Permissions on an XML Schema Collection
Uprawnienie do tworzenia kolekcja schematu XML może zostać cofnięta za pomocą jednego z następujących czynności:
Odwołać uprawnienia ALTER relacyjnej schematu.Następnie w relacyjnej schematu kolekcja schematu XML nie można utworzyć głównej.Jednak głównej nadal zrobić w innych schematach relacyjnej bazie danych.
Odwołać uprawnienia ALTER bez SCHEMA w bazie danych do głównej.Następnie główny nie może utworzyć kolekcja schematu XML dowolne miejsce w bazie danych.
Odwołaj uprawnienia CREATE kolekcja SCHEMATU XML lub ALTER kolekcja SCHEMATU XML do bazy danych dla głównej.Główny zapobiega importowaniu kolekcja schematu XML, znajdujący się w bazie danych.Odwoływanie ALTER lub kontroli uprawnień do bazy danych, działa tak samo.
Odwoływanie uprawnień do istniejącego obiektu kolekcja schematów XML
Uprawnienia, które mogą zostać odwołany na kolekcja schematu XML, a wyniki są następujące:
Odwoływanie uprawnień ALTER odwołuje którą podmiot możliwość modyfikowania zawartości kolekcja schematu XML.
Odwoływanie uprawnień własności UWZGLĘDNAIJĄ odwołuje którą podmiot możliwość przetransferować własność kolekcja schematu XML.
Odwoływanie uprawnień materiały referencyjne odwołuje którą podmiot możliwość korzystania z kolekcja schematu XML do wpisywania lub ograniczając kolumny Typ danych xml, w tabelach i widokach i parametry.On również odwołuje uprawnienie do odwoływania się do tej kolekcja schematu z innej kolekcja schematu XML.
Odwoływanie uprawnień definicja VIEW odwołuje którą podmiot możliwość wyświetlania zawartości schemat XML kolekcja.
Odwoływanie uprawnień wykonać odwołuje którą podmiot możliwość wstawienia lub aktualizacji wartości w kolumnach, zmiennych i parametrów, które są wpisane lub ograniczonego zbioru XML.On również odwołuje możliwość takiej kwerendy XML typ kolumny, zmiennych lub parametrów.
Przykłady
Scenariusze w poniższych przykładach ilustrują, jak działają uprawnienia do schematu XML.Każdy przykład tworzy niezbędne testowej bazy danych, relacyjnej schematów i logowania.Te identyfikatory logowania są przyznawane uprawnienia niezbędne kolekcja schematu XML.Każdy przykład nie konieczne oczyszczania na końcu.
A.Odwoływanie uprawnień do tworzenia kolekcja schematu XML
W tym przykładzie tworzony identyfikatora logowania i przykładowej bazy danych.Dodaje także schematu relacyjnej bazy danych.Początkowo identyfikator logowania jest uprawnienie ALTER na zarówno relacyjnej schematy i inne niezbędne uprawnienia, aby utworzyć kolekcji schematu XML.W przykładzie następnie odwołuje uprawnienie ALTER na jednym z schematów relacyjnej bazy danych.W ten sposób logowania się tworzenie kolekcja schematu XML.
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