Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’autorisation de créer une collection de schémas XML peut être révoquée à l’aide de l’une des options suivantes :
Révoquez l’autorisation ALTER pour le schéma relationnel. Ensuite, le principal ne peut pas créer une collection de schémas XML dans le schéma relationnel. Toutefois, le principal peut toujours le faire dans d’autres schémas relationnels dans la même base de données.
Révoquez l’autorisation ALTER ANY SCHEMA sur la base de données pour le principal. Ensuite, le principal ne peut pas créer une collection de schémas XML n’importe où dans la base de données.
Révoquez l’autorisation CREATE XML SCHEMA COLLECTION ou ALTER XML SCHEMA COLLECTION sur la base de données du principal. Cela empêche le principal d’importer une collection de schémas XML dans la base de données. La révocation de l’autorisation ALTER ou CONTROL sur la base de données a le même effet.
Révocation des autorisations sur un objet de collection de schémas XML existant
Voici les autorisations qui peuvent être révoquées sur une collection de schémas XML et les résultats :
La révocation de l’autorisation ALTER révoque la capacité d’un principal à modifier le contenu de la collection de schémas XML.
La révocation de l’autorisation TAKE OWNERSHIP révoque la capacité d’un principal à transférer la propriété de la collection de schémas XML.
La révocation de l’autorisation REFERENCES révoque la capacité d’un principal à utiliser la collection de schémas XML pour taper ou limiter les colonnes de type XML, dans les tables et les vues et les paramètres. Elle révoque également l’autorisation de faire référence à cette collection de schémas à partir d’autres collections de schémas XML.
La révocation de l’autorisation VIEW DEFINITION révoque la possibilité d’afficher le contenu d’une collection de schémas XML.
La révocation de l’autorisation EXECUTE révoque la possibilité d’insérer ou de mettre à jour des valeurs dans des colonnes, des variables et des paramètres typés ou contraints par la collection XML. Elle révoque également la possibilité d’interroger de telles colonnes, variables ou paramètres de type xml .
Exemples
Les scénarios des exemples suivants illustrent le fonctionnement des autorisations de schéma XML. Chaque exemple crée la base de données de test, les schémas relationnels et les connexions nécessaires. Ces connexions reçoivent les autorisations de collecte de schémas XML nécessaires. Chaque exemple effectue le nettoyage nécessaire à la fin.
Un. Révocation des autorisations pour créer une collection de schémas XML
Cet exemple crée une connexion et un exemple de base de données. Il ajoute également un schéma relationnel dans la base de données. Initialement, la connexion reçoit l’autorisation ALTER sur les schémas relationnels et d’autres autorisations nécessaires pour créer des collections de schémas XML. L’exemple révoque ensuite l’autorisation ALTER sur l’un des schémas relationnels de la base de données. Cela empêche la connexion de créer une collection de schémas 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
Voir aussi
Données XML (SQL Server)
Comparer du XML typé et du XML non typé
Collections de schémas XML (SQL Server)
Conditions requises et limitations pour les collections de schémas XML sur le serveur