Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A permissão para criar uma coleção de esquemas XML pode ser revogada usando um dos seguintes:
Revogue a permissão ALTER para o esquema relacional. Então, o principal não pode criar uma coleção de esquemas XML no esquema relacional. No entanto, o principal ainda pode fazer isso em outros esquemas no mesmo banco de dados.
Revogue a permissão ALTER ANY SCHEMA no banco de dados para o principal. Em seguida, a entidade de segurança não pode criar uma coleção de esquemas XML em qualquer lugar no banco de dados.
Revogue a permissão CREATE XML SCHEMA COLLECTION ou ALTER XML SCHEMA COLLECTION no banco de dados para o principal. Isso impede que o principal importe uma coleção de esquemas XML no banco de dados. A revogação da permissão ALTER ou CONTROL no banco de dados tem o mesmo efeito.
Revogando permissões em um objeto de coleção de esquema XML existente
A seguir estão as permissões que podem ser revogadas em uma coleção de esquemas XML e os resultados:
Revogar a permissão ALTER revoga a capacidade de uma entidade principal de modificar o conteúdo da coleção de esquemas XML.
Revogar a permissão TAKE OWNERSHIP revoga a capacidade de um principal de transferir a propriedade da coleção de esquemas XML.
Revogar a permissão REFERENCES revoga a capacidade de um principal de usar a coleção de esquemas XML para digitar ou restringir colunas de tipo xml, em tabelas, parâmetros e exibições. Ele também revoga a permissão para referenciar essa coleção de esquemas a partir de outras coleções de esquemas XML.
Revogar a permissão VIEW DEFINITION revoga a capacidade de um principal de exibir o conteúdo de uma coleção de esquemas XML.
Revogar a permissão EXECUTE retira a habilidade de um principal para inserir ou atualizar valores em colunas, variáveis e parâmetros que são tipados ou limitados pela coleção XML. Ele também revoga a capacidade de consultar tais colunas de tipo xml , variáveis ou parâmetros.
Exemplos
Os cenários nos exemplos a seguir ilustram como funcionam as permissões de esquema XML. Cada exemplo cria o banco de dados de teste, os esquemas relacionais e os logons necessários. Esses logons recebem as permissões de coleta de esquema XML necessárias. Cada exemplo realiza a limpeza necessária ao final.
Um. Revogando permissões para criar uma coleção de esquemas XML
Este exemplo cria um logon e um banco de dados de exemplo. Ele também adiciona um esquema relacional no banco de dados. Inicialmente, o logon recebe a permissão ALTER em ambos os esquemas relacionais e outras permissões necessárias para criar coleções de esquema XML. Em seguida, o exemplo revoga a permissão ALTER em um dos esquemas relacionais no banco de dados. Isso impede que o logon crie uma coleção de esquemas 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
Consulte Também
Dados XML (SQL Server)
Comparar XML tipado com XML não tipado
Coleções de esquema XML (SQL Server)
Requisitos e limitações para coleções de esquema XML no servidor