Udostępnij przez


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