Revoca delle autorizzazioni per una raccolta di XML SchemaRevoke Permissions on an XML Schema Collection

Per revocare l'autorizzazione per creare una raccolta XML Schema, è possibile eseguire una delle operazioni seguenti:The permission to create an XML schema collection can be revoked by using one of the following:

  • Revocare l'autorizzazione ALTER per lo schema relazionale.Revoke the ALTER permission for the relational schema. L'entità non sarà quindi in grado di creare una raccolta XML Schema nello schema relazionale,Then, the principal cannot create an XML schema collection in the relational schema. ma potrà comunque eseguire questa operazione negli altri schemi relazionali dello stesso database.However, the principal can still do so in other relational schemas in the same database.

  • Revocare l'autorizzazione ALTER ANY SCHEMA dell'entità per il database.Revoke the ALTER ANY SCHEMA permission on the database for the principal. L'entità non sarà quindi in grado di creare una raccolta XML Schema all'interno del database.Then, the principal cannot create an XML schema collection anywhere in the database.

  • Revocare l'autorizzazione CREATE XML SCHEMA COLLECTION o ALTER XML SCHEMA COLLECTION dell'entità per il database.Revoke the CREATE XML SCHEMA COLLECTION or ALTER XML SCHEMA COLLECTION permission on the database for the principal. Ciò impedisce all'entità di importare una raccolta XML Schema nel database.This prevents the principal from importing an XML schema collection within the database. La revoca dell'autorizzazione ALTER o CONTROL per il database produce gli stessi effetti.Revoking the ALTER or CONTROL permission on the database has the same effect.

Revoca delle autorizzazioni per un oggetto raccolta XML Schema esistenteRevoking Permissions on an Existing XML Schema Collection Object

Di seguito sono riportate le autorizzazioni che è possibile revocare per una raccolta XML Schema e i relativi risultati:Following are the permissions that can be revoked on an XML schema collection and the results:

  • La revoca dell'autorizzazione ALTER impedisce all'entità di modificare il contenuto della raccolta XML Schema.Revoking the ALTER permission revokes a principal's ability to modify the content of the XML schema collection.

  • La revoca dell'autorizzazione TAKE OWNERSHIP impedisce all'entità di trasferire la proprietà della raccolta XML Schema.Revoking the TAKE OWNERSHIP permission revokes a principal's ability to transfer ownership of the XML schema collection.

  • La revoca dell'autorizzazione REFERENCES impedisce all'entità di utilizzare la raccolta XML Schema per tipizzare o vincolare le colonne di tipo xml di tabelle e viste nonché i parametri.Revoking the REFERENCES permission revokes a principal's ability to use the XML schema collection for typing or constraining xml type columns, in tables and views, and parameters. Comporta inoltre la revoca dell'autorizzazione che consente di fare riferimento alla raccolta di schemi da altre raccolte XML Schema.It also revokes the permission to refer to this schema collection from other XML schema collections.

  • La revoca dell'autorizzazione VIEW DEFINITION impedisce all'entità di visualizzare il contenuto della raccolta XML Schema.Revoking the VIEW DEFINITION permission revokes a principal's ability to view the contents of an XML schema collection.

  • La revoca dell'autorizzazione EXECUTE impedisce all'entità di inserire o aggiornare valori nelle colonne, variabili e parametri tipizzati o vincolati dalla raccolta XML.Revoking the EXECUTE permission revokes a principal's ability to insert or update values in columns, variables, and parameters that are typed or constrained by the XML collection. Comporta inoltre la revoca della possibilità di eseguire query su tali colonne, variabili o parametri di tipo xml .It also revokes the ability to query such xml type columns, variables, or parameters.

EsempiExamples

Gli scenari degli esempi seguenti illustrano il funzionamento delle autorizzazioni per XML Schema.The scenarios in the following examples illustrate how XML schema permissions work. In ogni esempio vengono creati il database di prova, gli schemi relazionali e gli account di accesso necessari.Each example creates the necessary test database, relational schemas, and logins. A tali account di accesso vengono concesse le autorizzazioni necessarie per la raccolta di XML Schema.These logins are granted the necessary XML schema collection permissions. Alla fine di ogni esempio viene eseguito il processo di pulizia necessario.Each example does the necessary cleanup at the end.

A.A. Revoca delle autorizzazioni per creare una raccolta XML SchemaRevoking permissions to create an XML schema collection

In questo esempio vengono creati un account di accesso e un database di esempioThis example creates a login and a sample database. e nel database viene inoltre aggiunto uno schema relazionale.It also adds a relational schema in the database. Innanzitutto, all'account di accesso vengono concesse l'autorizzazione ALTER per entrambi gli schemi relazionali e le altre autorizzazioni necessarie per creare raccolte XML Schema.Initially, the login is granted ALTER permission on both relational schemas and other necessary permissions to create XML schema collections. Viene quindi revocata l'autorizzazione ALTER per uno degli schemi relazionali del database,The example then revokes the ALTER permission on one of the relational schemas in the database. in modo tale da impedire all'account di accesso di creare una raccolta XML Schema.This prevents the login from creating an XML schema collection.

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 ancheSee Also

Dati XML (SQL Server) XML Data (SQL Server)
Confronto dati XML tipizzati con dati XML non tipizzati Compare Typed XML to Untyped XML
Raccolte di XML Schema (SQL Server) XML Schema Collections (SQL Server)
Requisiti e limitazioni per l'utilizzo di raccolte di XML Schema nel server Requirements and Limitations for XML Schema Collections on the Server