Negazione delle autorizzazioni per una raccolta di XML SchemaDeny Permissions on an XML Schema Collection

È possibile negare l'autorizzazione per la creazione di una nuova raccolta di XML Schema o per l'utilizzo di una raccolta esistente.Permission can be denied to either create a new XML schema collection or use an existing one.

Negazione dell'autorizzazione per la creazione di una raccolta di XML SchemaDenying Permission to Create an XML Schema Collection

È possibile negare l'autorizzazione per la creazione di una raccolta di XML Schema nei modi seguenti:You can deny permission to create an XML schema collection in the following ways:

  • Negando l'autorizzazione ALTER per lo schema relazionale.Deny ALTER permission on the relational schema.

  • Negando l'autorizzazione CONTROL per lo schema relazionale in modo da negare tutte le autorizzazioni per lo schema relazionale e per tutti gli oggetti contenuti.Deny CONTROL on the relational schema to deny all permissions on the relational schema and on all the contained objects.

  • Negando l'autorizzazione ALTER ANY SCHEMA per il database.Deny ALTER ANY SCHEMA on the database. In tal caso, l'entità non può creare una raccolta di XML Schema in una posizione all'interno del database.In this case, the principal cannot create an XML schema collection anywhere in the database. Si noti inoltre che tramite la negazione dell'autorizzazione ALTER o CONTROL vengono negate tutte le autorizzazioni per tutti gli oggetti del database.Note also that denying ALTER or CONTROL permission on the database denies all permissions on all objects in the database.

Negazione di autorizzazioni per un oggetto di una raccolta di XML SchemaDenying Permissions on an XML Schema Collection Object

Per una raccolta di XML Schema esistente e i relativi risultati è possibile negare le autorizzazioni seguenti:Following are the permission that can be denied on an existing XML schema collection and the results:

  • Tramite la negazione dell'autorizzazione ALTER, all'entità viene negata la possibilità di modificare il contenuto di una raccolta di XML Schema.Denying the ALTER permission denies the principal the ability to modify the contents of the XML schema collection.

  • Tramite la negazione dell'autorizzazione CONTROL, all'entità viene negata la possibilità di eseguire qualsiasi operazione sulla raccolta di XML Schema.Denying the CONTROL permission denies the principal the ability to perform any operation on the XML schema collection.

  • Tramite la negazione dell'autorizzazione REFERENCES, all'entità viene negata la possibilità di tipizzare o vincolare parametri e colonne di tipo XML mediante la raccolta di XML Schema,Denying the REFERENCES permission denies the principal the ability to type or constrain xml type columns and parameters using the XML schema collection. nonché la possibilità di fare riferimento a tale raccolta da altre raccolte di XML Schema.It also denies the principal the ability to refer to this XML schema collection from other XML schema collections.

  • Tramite la negazione dell'autorizzazione VIEW DEFINITION, all'entità viene negata la possibilità di visualizzare il contenuto di una raccolta di XML Schema.Denying the VIEW DEFINITION permission denies the principal the ability to view the contents of an XML schema collection.

  • Tramite la negazione dell'autorizzazione EXECUTE, all'entità viene negata la possibilità di inserire o aggiornare i valori in colonne, variabili e parametri tipizzati o vincolati dalla raccolta di XML Schema,Denying the EXECUTE permission denies the principal the ability to insert or update the values in columns, variables, and parameters that are typed or constrained by the XML schema collection. nonché la possibilità di eseguire query sui valori nelle stesse variabili e colonne di tipo XML.It also denies the principal the ability to query the values in those same xml type columns and variables.

EsempiExamples

Gli scenari degli esempi seguenti illustrano il funzionamento delle autorizzazioni per XML Schema.The scenarios in the following examples show 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. Procedura per impedire a un utente di creare una raccolta di XML SchemaPreventing a user from creating an XML schema collection

Uno dei modi per impedire a un utente di creare una raccolta di XML Schema consiste nel negare l'autorizzazione ALTER per uno schema relazionale,One of the ways to prevent a user from creating an XML schema collection is by denying the ALTER permission on a relational schema. come illustrato nell'esempio seguente.This is shown in the following example.

Nell'esempio vengono creati l'account utente TestLogin1e un database,The example creates a user, TestLogin1, and a database. nonché uno schema relazionale, in aggiunta allo schema dbo , nel database.It also creates a relational schema, in addition to the dbo schema, in the database. Inizialmente, l'autorizzazione CREATE XML SCHEMA consente all'utente di creare una raccolta di schemi in una posizione qualsiasi all'interno del database.Initially, the CREATE XML SCHEMA permission allows the user to create a schema collection anywhere in the database. Nell'esempio viene negata all'utente l'autorizzazione ALTER per uno degli schemi relazionali.The example then denies ALTER permission to the user on one of the relational schemas. In questo modo, viene impedito all'utente di creare una raccolta di XML Schema in tale schema relazionale.This prevents the user from creating an XML schema collection in that relational schema.

CREATE LOGIN TestLogin1 WITH password='SQLSvrPwd1'  
GO  
CREATE DATABASE SampleDBForSchemaPermissions  
GO  
USE SampleDBForSchemaPermissions  
GO  
-- Create another relational schema in the database.  
CREATE SCHEMA myOtherDBSchema  
GO  
CREATE USER TestLogin1  
GO  
-- For TestLogin1 to create/import XML schema collection, following  
-- permission needed.  
-- Database-level permissions  
GRANT CREATE XML SCHEMA COLLECTION TO TestLogin1  
GO  
GRANT ALTER ANY SCHEMA TO TestLogin1  
GO  
-- Now TestLogin1 can import an XML schema collection.  
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  
DROP XML SCHEMA COLLECTION myOtherDBSchema.myTestSchemaCollection  
GO  
-- Now deny permission from TestLogin1 to alter myOtherDBSchema.  
setuser  
GO  
DENY ALTER ON SCHEMA::myOtherDBSchema TO TestLogin1  
GO  
-- Now TestLogin1 cannot create xml schema collection.  
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  
-- Final cleanup  
SETUSER  
GO  
USE master  
GO  
DROP DATABASE SampleDBForSchemaPermissions  
GO  
DROP LOGIN TestLogin1  
GO  

B.B. Procedura per negare autorizzazioni per una raccolta di XML SchemaDenying permissions on an XML schema collection

Nell'esempio seguente viene illustrato come negare a un account di accesso un'autorizzazione specifica per una raccolta di XML Schema esistente.The following example shows how a specific permission on an existing XML schema collection can be denied to a login. In questo esempio, a un account di accesso di prova viene negata l'autorizzazione REFERENCES per una raccolta di XML Schema esistente.In this example, a test login is denied REFERENCES permission on an existing XML schema collection.

Nell'esempio vengono creati l'account utente TestLogin1e un database,The example creates a user, TestLogin1, and a database. nonché uno schema relazionale, in aggiunta allo schema dbo , nel database.It also creates a relational schema, in addition to the dbo schema, in the database. Inizialmente, l'autorizzazione CREATE XML SCHEMA consente all'utente di creare una raccolta di schemi in una posizione qualsiasi all'interno del database.Initially, the CREATE XML SCHEMA permission allows the user to create a schema collection anywhere in the database.

L'autorizzazione REFERENCES per la raccolta di XML Schema consente a TestLogin1 di utilizzare lo schema nella creazione di una colonna xml tipizzata in una tabella.The REFERENCES permission on the XML schema collection lets TestLogin1 use the schema in creating a typed xml column in a table. Se viene negata l'autorizzazione REFERENCES per la raccolta di XML Schema, TestLogin1 non potrà utilizzare tale raccolta.If the REFERENCES permission on the XML schema collection is denied, it prevents the TestLogin1 from using the XML schema collection.

CREATE LOGIN TestLogin1 WITH password='SQLSvrPwd1'  
GO  
CREATE DATABASE SampleDBForSchemaPermissions  
GO  
USE SampleDBForSchemaPermissions  
GO  
-- Create another relational schema in the database.  
CREATE SCHEMA myOtherDBSchema  
GO  
CREATE USER TestLogin1  
GO  
-- For TestLogin1 to create/import XML schema collection, the following  
-- permission is required.  
-- Database-level permissions  
GRANT CREATE XML SCHEMA COLLECTION TO TestLogin1  
GO  
GRANT ALTER ANY SCHEMA TO TestLogin1  
GO  
-- Now TestLogin1 can import an XML schema collection.  
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  
-- Grant permission to TestLogin1 to create a table and reference the XML schema collection.  
SETUSER  
GO  
GRANT CREATE TABLE TO TestLogin1  
GO  
-- The user also needs REFERENCES permission to use the XML schema collection  
-- to create a typed XML column (REFERENCES permission on the schema   
-- collection is not needed).  
GRANT REFERENCES ON XML SCHEMA COLLECTION::myOtherDBSchema.myTestSchemaCollection   
TO TestLogin1  
GO  

--TestLogin1 can use the schema.  
CREATE TABLE T(i int, x xml (myOtherDBSchema.myTestSchemaCollection))  
GO  
-- Drop the table.  
DROP TABLE T  
GO  
-- Now deny REFERENCES permission to TestLogin1 on the schema created previously.  
SETUSER  
GO  
DENY REFERENCES ON XML SCHEMA COLLECTION::myOtherDBSchema.myTestSchemaCollection TO TestLogin1  

GO  
-- Now TestLogin1 cannot create xml schema collection  
SETUSER 'TestLogin1'  
GO  
-- Following statement fails. TestLogin1 does not have REFERENCES   
-- permission on the XML schema collection.  
CREATE TABLE T(i int, x xml (myOtherDBSchema.myTestSchemaCollection))  
GO  

-- Final cleanup  
SETUSER  
GO  
USE master  
GO  
DROP DATABASE SampleDBForSchemaPermissions  
GO  
DROP LOGIN TestLogin1  
GO  

Vedere ancheSee Also

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
DENY - autorizzazioni per oggetti (Transact-SQL) DENY Object Permissions (Transact-SQL)
GRANT - autorizzazioni per oggetti (Transact-SQL) GRANT Object Permissions (Transact-SQL)
Dati XML (SQL Server) XML Data (SQL Server)