Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'autorizzazione per creare una raccolta di XML Schema può essere revocata usando una delle opzioni seguenti:
Revocare l'autorizzazione ALTER per lo schema relazionale. L'entità non può quindi creare una raccolta di XML Schema nello schema relazionale. Tuttavia, l'entità può comunque farlo in altri schemi relazionali nello stesso database.
Revocare l'autorizzazione ALTER ANY SCHEMA per il database per l'entità. L'entità non può quindi creare una raccolta di XML Schema in qualsiasi punto del database.
Revocare l'autorizzazione CREATE XML SCHEMA COLLECTION o ALTER XML SCHEMA COLLECTION per il database per l'entità. Ciò impedisce all'entità di importare una raccolta di XML Schema all'interno del database. La revoca dell'autorizzazione ALTER o CONTROL per il database ha lo stesso effetto.
Revoca delle autorizzazioni per un oggetto raccolta di XML Schema esistente
Di seguito sono riportate le autorizzazioni che possono essere revocate per una raccolta di XML Schema e i risultati:
La revoca dell'autorizzazione ALTER revoca la capacità di un'entità di modificare il contenuto della raccolta di XML Schema.
La revoca del permesso TAKE OWNERSHIP revoca l'abilità di un’entità di trasferire la proprietà della raccolta di schemi XML.
La revoca dell'autorizzazione REFERENCES revoca la capacità di un principale di usare la raccolta di XML Schema per definire o vincolare colonne di tipo xml, in tabelle, viste e parametri. Revoca inoltre l'autorizzazione per fare riferimento a questa raccolta di schemi da altre raccolte di XML Schema.
La revoca dell'autorizzazione VIEW DEFINITION impedisce al principale di visualizzare il contenuto di una raccolta di XML Schema.
La revoca dell'autorizzazione EXECUTE revoca la capacità di un'entità di inserire o aggiornare valori in colonne, variabili e parametri tipizzati o vincolati dalla raccolta XML. Revoca inoltre la possibilità di eseguire query su colonne, variabili o parametri di tipo xml .
Esempi
Gli scenari degli esempi seguenti illustrano il funzionamento delle autorizzazioni per XML Schema. In ogni esempio vengono creati il database di prova, gli schemi relazionali e gli account di accesso necessari. A tali account di accesso vengono concesse le autorizzazioni necessarie per la raccolta di XML Schema. Alla fine di ogni esempio viene eseguito il processo di pulizia necessario.
Un. Revoca delle autorizzazioni per creare una raccolta di XML Schema
Questo esempio crea un account di accesso e un database di esempio. Aggiunge anche uno schema relazionale nel database. Inizialmente, all'account di accesso viene concessa l'autorizzazione ALTER sia sugli schemi relazionali sia su altre autorizzazioni necessarie per creare raccolte di XML Schema. Nell'esempio viene quindi revocata l'autorizzazione ALTER per uno degli schemi relazionali nel database. Ciò impedisce all'accesso di creare una raccolta di XML schema.
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
Vedere anche
Dati XML (SQL Server)
Confrontare dati XML tipizzati con dati XML non tipizzati
Raccolte di XML Schema (SQL Server)
Requisiti e limitazioni per le raccolte di XML Schema nel server