Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Izin untuk membuat kumpulan skema XML dapat dicabut dengan menggunakan salah satu hal berikut ini:
Cabut izin ALTER untuk skema relasional. Kemudian, pemangku kepentingan tidak dapat membuat koleksi skema XML di dalam skema relasional. Namun, prinsipal masih dapat melakukannya dalam skema relasional lain dalam database yang sama.
Cabut hak Mengubah Skema Apapun pada database untuk prinsipal. Kemudian, prinsipal tidak dapat membuat kumpulan skema XML di mana saja dalam database.
Cabut izin CREATE XML SCHEMA COLLECTION atau ALTER XML SCHEMA COLLECTION pada database untuk prinsipal. Ini mencegah prinsipal mengimpor kumpulan skema XML dalam database. Mencabut izin ALTER atau CONTROL pada database memiliki efek yang sama.
Mencabut Izin pada Objek Koleksi Skema XML yang Sudah Ada
Berikut ini adalah izin yang dapat dicabut pada kumpulan skema XML dan hasilnya:
Mencabut izin ALTER mencabut kemampuan prinsipal untuk memodifikasi konten koleksi skema XML.
Mencabut izin TAKE OWNERSHIP mencabut kemampuan prinsipal untuk mentransfer kepemilikan koleksi skema XML.
Mencabut izin REFERENCES mencabut kemampuan prinsipal untuk menggunakan koleksi skema XML untuk menentukan tipe atau membatasi kolom tipe xml, dalam tabel dan tampilan, serta parameter. Ini juga mencabut izin untuk merujuk ke koleksi skema ini dari koleksi skema XML lainnya.
Mencabut izin MELIHAT DEFINISI mencabut kemampuan prinsipal untuk melihat konten kumpulan skema XML.
Mencabut izin EXECUTE mencabut kemampuan prinsipal untuk menyisipkan atau memperbarui nilai dalam kolom, variabel, dan parameter yang diketik atau dibatasi oleh koleksi XML. Ini juga mencabut kemampuan untuk mengkueri kolom, variabel, atau parameter jenis xml tersebut.
Contoh
Skenario dalam contoh berikut menggambarkan cara kerja izin skema XML. Setiap contoh membuat database pengujian, skema relasional, dan login yang diperlukan. Login ini diberikan izin pengumpulan skema XML yang diperlukan. Setiap contoh melakukan pembersihan yang diperlukan di akhir.
A. Mencabut izin untuk membuat kumpulan skema XML
Contoh ini membuat login dan database sampel. Ini juga menambahkan skema relasional dalam database. Awalnya, login diberikan izin ALTER pada skema relasional dan izin lain yang diperlukan untuk membuat koleksi skema XML. Contoh kemudian mencabut izin ALTER pada salah satu skema relasional dalam database. Ini mencegah proses login dari membuat koleksi skema 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
Lihat Juga
XML Data (SQL Server)
Membandingkan XML Yang Dititik dengan XML Yang Tidak Dititik
Koleksi Skema XML (SQL Server)
Persyaratan dan Batasan untuk Koleksi Skema XML di Server