Aracılığıyla paylaş


Bir XML şeması derlemesi izinleri iptal ediliyor

Bir XML şema koleksiyon oluşturma izni, aşağıdakilerden birini kullanarak iptal edilebilir:

  • Ilişkisel şeması için ALTER iznini.Sonra patron ilişkisel şemada bir XML şema koleksiyon oluşturulamıyor.Ancak, patron hala aynı veritabanındaki başka bir ilişkisel şemalarında bunu yapabilirsiniz.

  • Anapara veritabanında ALTER ANY SCHEMA iznini iptal et.Ardından, patron bir XML şema koleksiyon herhangi bir veritabanında oluşturamıyor.

  • XML SCHEMA koleksiyon CREATE veya ALTER XML SCHEMA koleksiyon iznini veritabanında anapara iptal etme.Bu veritabanı içindeki bir XML şema koleksiyon içeri anapara engeller.Veritabanı ALTER veya DENETIM iznini iptal aynı etkiyi sağlar.

Nesnelerde izin varolan XML şeması koleksiyon iptal ediliyor

Bir XML şema koleksiyon ve sonuçlar iptal izinler şunlardır:

  • Bir ilkesi yeteneği, XML şemasının içeriğini değiştirmek için ALTER iznini iptal iptal eder koleksiyon.

  • XML şema koleksiyon sahipliğini aktarmak için bir ilkesi yeteneği ALıN SAHIPLIK iznini iptal iptal eder.

  • BAŞVURULAR iznini iptal bir ilkesi yazarak veya xml türü sütunlarındaki tablolar, görünümler ve parametreleri sınırlama için XML şema koleksiyon kullanma yeteneğini iptal eder.Bu şemaya başvuruda bulunmak için izni de iptal eder koleksiyon diğer XML şema koleksiyon s.

  • Görünüm TANıMıNı iznini iptal içeriğini XML şemasını görüntülemek üzere bir ilkesi özelliği iptal eder koleksiyon.

  • yürütmek iznini iptal bir ilkesi veya sütunlar, değişkenler ve yazılı veya XML koleksiyonda kısıtlı parametreleri değerleri yeteneğini iptal eder.Bu tür sorgu yeteneğini de iptal eder XML türü sütunlar, değişkenler veya parametreler.

Örnekler

Aşağıdaki örnekler senaryolarda, XML şeması izinlerin nasıl çalıştığını gösterir.Gerekli bir sınama veritabanına, ilişkisel şemalar ve oturum açma, her örnek oluşturur.Bu oturumlar gerekli bir XML şema koleksiyon izinleri verilir.Her örnek sonunda gerekli temizleme işlemini gerçekleştirir.

C.Bir XML şema koleksiyon oluşturma izinleri iptal ediliyor

Bu örnek, bir oturum açma ve örnek bir veritabanı oluşturur.Veritabanında de ilişkisel bir şemaya ekler.Başlangıçta, oturum açma ALTER izni hem de ilişkisel şemalar ve XML şema koleksiyonları oluşturmak için diğer gerekli izinleri verilir.Örneğin, bir ilişkisel veritabanında şemalar ALTER iznine sonra iptal eder.Bu, oturum açma bir XML şema koleksiyon oluşturmasını engeller.

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