Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Behörigheten att skapa en XML-schemasamling kan återkallas med något av följande:
Återkalla ALTER-behörigheten för relationsschemat. Huvudansvarig kan därefter inte skapa en XML-schemasamling i relationsschemat. Huvudanvändaren kan dock fortfarande utföra den åtgärden i de andra relationsscheman i samma databas.
Återkalla behörigheten ALTER ANY SCHEMA för huvudkontot i databasen. Huvudenheten kan sedan inte skapa en XML-schemasamling någonstans i databasen.
Återkalla behörigheten CREATE XML SCHEMA COLLECTION eller ALTER XML SCHEMA COLLECTION på databasen för huvudpersonen. Detta förhindrar att huvudkontot importerar en XML-schemasamling i databasen. Att återkalla ALTER- eller CONTROL-behörigheten för databasen har samma effekt.
Återkalla behörigheter för ett befintligt XML-schemasamlingsobjekt
Följande är de behörigheter som kan återkallas för en XML-schemasamling och resultaten:
Om du återkallar ALTER-behörigheten återkallas en huvudsprincipals möjlighet att ändra innehållet i XML-schemasamlingen.
Återkallande av behörigheten att ta ägarskap återkallar en huvudansvarigs möjlighet att överföra ägarskapet för XML-schemasamlingen.
Om du återkallar behörigheten REFERENSER återkallas användarens möjlighet att använda XML-schemasamlingen för typering eller begränsning av XML-typkolumner i tabeller, vyer och parametrar. Den återkallar också behörigheten att referera till den här schemasamlingen från andra XML-schemasamlingar.
Genom att återkalla behörigheten VIEW DEFINITION återkallas en användares möjlighet att visa innehållet i en XML-schemainsamling.
Att återkalla behörigheten EXECUTE återkallar en användares möjlighet att lägga in eller uppdatera värden i kolumner, variabler och parametrar som är skrivna eller begränsade av XML-samlingen. Det återkallar också möjligheten att fråga kolumner, variabler eller parametrar av typen xml.
Examples
Scenarierna i följande exempel illustrerar hur XML-schemabehörigheter fungerar. Varje exempel skapar den nödvändiga testdatabasen, relationsscheman och inloggningar. Dessa inloggningar beviljas nödvändiga XML-schemainsamlingsbehörigheter. Varje exempel gör den nödvändiga rensningen i slutet.
A. Återkalla behörigheter för att skapa en XML-schemasamling
I det här exemplet skapas en inloggning och en exempeldatabas. Det lägger också till ett relationsschema i databasen. Ursprungligen beviljas inloggningen ALTER-behörighet för både relationsscheman och andra nödvändiga behörigheter för att skapa XML-schemasamlingar. Exemplet återkallar sedan ALTER-behörigheten för ett av relationsschemana i databasen. Detta förhindrar att inloggningen skapar en XML-schemasamling.
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="https://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="https://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="https://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="https://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