Udostępnij za pośrednictwem


Odwoływanie uprawnień do kolekcji schematu XML

Może odwołać uprawnienia do tworzenia kolekcja schematu XML przy użyciu jednej z następujących czynności:

  • Odwołaj uprawnienie zmiany schematu relacyjnego.Następnie główny nie może utworzyć kolekcja schematu XML w schemacie relacyjnej.Jednak główny nadal zrobić w innych schematów relacyjnej bazie danych.

  • Odwołać uprawnienia zmienić dowolny schemat bazy danych dla głównego zobowiązanego.Następnie główny nie może utworzyć kolekcja schematu XML gdziekolwiek w bazie danych.

  • Odwołać uprawnienia utworzyć KOLEKCJI SCHEMATU XML lub zmodyfikować KOLEKCJI SCHEMATU XML na bazie głównego zobowiązanego.Główny zapobiega importowaniu kolekcja schematu XML, bazy danych.Odwoływanie uprawnień ALTER lub FORMANTU na bazie ma taki sam efekt.

Odwoływanie uprawnień do istniejącego obiektu kolekcji schematu XML

Uprawnienia, które mogły zostać uchylone kolekcja schematu XML, a wyniki są następujące:

  • Odwoływanie uprawnień ALTER odwołuje głównego zobowiązanego możliwość modyfikowania zawartości kolekcja schematu XML.

  • Odwoływanie uprawnień własność odwołuje głównego zobowiązanego możliwość przeniesienia własności kolekcja schematu XML.

  • Odwoływanie uprawnień odwołania odwołuje głównego zobowiązanego możliwość korzystania z kolekcja schematu XML do wpisywania lub ograniczając kolumn typu xml, tabele i widoki i parametry.Odwołuje są również uprawnienia do odwoływania się do tej kolekcja schematu z innych kolekcja schematu XML.

  • Odwoływanie uprawnień VIEW DEFINITION odwołuje głównego zobowiązanego możliwość wyświetlania zawartości kolekcja schematu XML.

  • Odwoływanie uprawnień Wykonywanie odwołuje głównego zobowiązanego możliwość wstawiania lub aktualizacja wartości w kolumnach, zmiennych i parametrów, które są wpisane lub ograniczonego XML kolekcja.Również odwołuje możliwość taka kwerenda xml wpisz kolumn, zmiennych i parametrów.

Przykłady

Scenariusze w poniższych przykładach ilustrują, jak działają uprawnienia schematu XML.Każdy przykład tworzy bazy danych koniecznych testów, schematy relacyjnych i logowania.Te identyfikatory logowania przyznawane są uprawnienia niezbędne kolekcja schematu XML.Każdy przykład wykonuje niezbędne Oczyszczanie na końcu.

A.Odwoływanie uprawnień do tworzenia kolekcja schematu XML

W tym przykładzie tworzy identyfikator logowania i przykładowej bazy danych.Dodaje także schematu relacyjnej bazy danych.Logowania jest początkowo przyznane uprawnienie ALTER zarówno relacyjnej schematy i inne niezbędne uprawnienia do tworzenia kolekcji schematu XML.Przykład następnie odwołuje uprawnienie ALTER na jednym schematów relacyjnej bazy danych.Zapobiega to utworzeniu kolekcja schematu XML logowania.

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