ALTER AUTHORIZATION (Transact-SQL)

Изменяет владельца защищаемой сущности.

Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (С первоначального выпуска по текущий выпуск).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

ALTER AUTHORIZATION
   ON [ <class_type>:: ] entity_name
   TO { SCHEMA OWNER | principal_name }
[;]

<class_type> ::=
    {
        OBJECT | ASSEMBLY | ASYMMETRIC KEY | CERTIFICATE 
    | CONTRACT | TYPE | DATABASE | ENDPOINT | FULLTEXT CATALOG 
    | FULLTEXT STOPLIST | MESSAGE TYPE | REMOTE SERVICE BINDING
    | ROLE | ROUTE | SCHEMA | SEARCH PROPERTY LIST | SERVER ROLE 
    | SERVICE | SYMMETRIC KEY | XML SCHEMA COLLECTION
    }

Аргументы

  • <class_type>
    Защищаемый класс сущности, для которой изменяется владелец. По умолчанию это класс OBJECT.

    OBJECT

    ASSEMBLY

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    ASYMMETRIC KEY

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    CERTIFICATE

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    CONTRACT

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    TYPE

    DATABASE

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    ENDPOINT

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    FULLTEXT CATALOG

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    FULLTEXT STOPLIST

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    MESSAGE TYPE

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    REMOTE SERVICE BINDING

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    ROLE

    ROUTE

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    SCHEMA

    SEARCH PROPERTY LIST

    Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

    SERVER ROLE

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    SERVICE

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    SYMMETRIC KEY

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

    XML SCHEMA COLLECTION

    Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

  • entity_name
    Имя сущности.

  • principal_name
    Имя участника, владеющего сущностью.

Замечания

Инструкция ALTER AUTHORIZATION может использоваться для изменения владельца любой сущности, у которой он есть. Владение содержащимися в базе данных сущностями можно передать любому участнику уровня базы данных. Владение сущностями уровня сервера можно передать только участникам уровня сервера.

Важное примечаниеВажно!

Начиная с SQL Server 2005, пользователь может владеть объектом (OBJECT) или типом (TYPE), содержащимся в схеме, которая принадлежит другому пользователю базы данных.Это поведение было изменено по сравнению с предыдущими версиями SQL Server.Дополнительные сведения см. в разделах OBJECTPROPERTY (Transact-SQL) и TYPEPROPERTY (Transact-SQL).

Можно передать владение содержащимися в схемах сущностями типа «объект»: таблицами, представлениями, функциями, процедурами, очередями и синонимами.

Владение следующими сущностями, такими как связанные серверы, статистика, ограничения, правила, значения по умолчанию, триггеры, очереди компонента Компонент Service Broker, учетные данные, функции секционирования, схемы секционирования, главные ключи баз данных, главный ключ службы, а также уведомления о событиях, передать нельзя.

Нельзя передать владение элементами следующих защищаемых классов: сервер, имя входа, пользователь, роль приложения и столбец.

Аргумент SCHEMA OWNER допустим только в случае передачи владения сущностью, содержащейся в схеме. Аргумент SCHEMA OWNER позволяет передать владение сущностью владельцу схемы, в которой она находится. В схемах содержатся только сущности классов OBJECT, TYPE или XML SCHEMA COLLECTION.

Если целевая сущность не представляет собой базу данных, а передаваемая сущность передается новому владельцу, все разрешения на целевую сущность удаляются.

Предупреждение

В SQL Server 2005 поведение схем отличается от более ранних версий SQL Server.Код, предполагающий, что схемы эквивалентны пользователям базы данных, может возвращать неверные результаты.Старые представления каталога, включая sysobjects, не должны использоваться в базе данных, в которой когда-либо выполнялась любая из следующих инструкций DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION.В базе данных, в которой когда-либо выполнялась любая из этих инструкций, необходимо использовать новые представления каталога.В новых представлениях каталогов учитывается разделение участников и схем, введенное в SQL Server 2005.Дополнительные сведения о представлениях каталога см. в разделе Представления каталога (Transact-SQL).

Имейте в виду следующее:

Важное примечаниеВажно!

Единственный надежный способ найти владельца объекта — выполнить запрос к представлению каталога sys.objects.Единственный надежный способ найти владельца типа — использовать функцию TYPEPROPERTY.

Особые случаи и условия

В следующей таблице перечислены особые случаи, исключения и условия, касающиеся изменения авторизации.

Класс

Условие

DATABASE

Нельзя изменить владельца системных баз данных master, model, tempdb, базы данных ресурсов или любой базы, используемой в качестве базы данных распространителя. Участник должен представлять собой имя входа в систему. Если участник представляет собой имя входа в систему Windows без соответствующего имени входа в SQL Server, у такого участника должно быть разрешение CONTROL SERVER, а также разрешение TAKE OWNERSHIP на базу данных. Если участник представляет собой имя входа в SQL Server, он не может быть сопоставлен с сертификатом или асимметричным ключом. Зависимые псевдонимы будут сопоставлены с новым владельцем базы данных. Идентификатор безопасности DBO SID будет обновлен как в текущей базе данных, так и в базе данных sys.databases.

OBJECT

Нельзя изменить владельца триггеров, ограничений, правил, значений по умолчанию, статистик, системных объектов, очередей, индексированных представлений и таблиц с индексированными представлениями.

SCHEMA

При передаче владения разрешения на содержащиеся в схеме объекты, у которых нет явных владельцев, удаляются. Владельца sys, dbo или information_schema изменить невозможно.

TYPE

Нельзя изменить владельца сущности TYPE, принадлежащей схеме sys или information_schema.

CONTRACT, MESSAGE TYPE или SERVICE

Нельзя изменить владельца системных сущностей.

SYMMETRIC KEY

Нельзя изменить владельца глобальных временных ключей.

CERTIFICATE или ASYMMETRIC KEY

Нельзя передавать владение данными сущностями роли или группе.

ENDPOINT

Участник должен представлять собой имя входа в систему.

Разрешения

Требует разрешения TAKE OWNERSHIP для сущности. Если новый владелец не является пользователем, выполняющим данную инструкцию, также требуется одно из следующих условий: 1) разрешение IMPERSONATE для нового владельца, если это пользователь или имя входа; 2) если новый владелец представляет собой роль — членство в роли или разрешение ALTER для этой роли; 3) если новый владелец представляет собой роль приложения — разрешение ALTER для роли приложения.

Примеры

А.Передача владения таблицей

В следующем примере владение таблицей Sprockets передается пользователю MichikoOsada. Эта таблица расположена в схеме Parts.

ALTER AUTHORIZATION ON OBJECT::Parts.Sprockets TO MichikoOsada;
GO

Запрос также может выглядеть следующим образом:

ALTER AUTHORIZATION ON Parts.Sprockets TO MichikoOsada;
GO

Б.Передача владения представлением владельцу схемы

В следующем примере передается владение представлением ProductionView06 владельцу содержащей его схемы. Это представление расположено в схеме Production.

ALTER AUTHORIZATION ON OBJECT::Production.ProductionView06 TO SCHEMA OWNER;
GO

В.Передача владения схемой пользователю

В следующем примере владение схемой SeattleProduction11 передается пользователю SandraAlayo.

ALTER AUTHORIZATION ON SCHEMA::SeattleProduction11 TO SandraAlayo;
GO

Г.Передача владения конечной точкой имени входа в SQL Server

В следующем примере владение конечной точкой CantabSalesServer1 передается JaePak. Так как конечная точка представляет собой защищаемую сущность уровня сервера, ее можно передать только участнику уровня сервера.

Применимо для следующих объектов: С SQL Server 2008 по SQL Server 2014 включительно.

ALTER AUTHORIZATION ON ENDPOINT::CantabSalesServer1 TO JaePak;
GO

См. также

Справочник

OBJECTPROPERTY (Transact-SQL)

TYPEPROPERTY (Transact-SQL)

EVENTDATA (Transact-SQL)