微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlserver修改数据库的所有者

ALTER AUTHORIZATION on DATABASE::Demo93 to sa;
参考

ALTER AUTHORIZATION (Transact-sql)
sql Server 2005 联机丛书(2008 年 11 月)
ALTER AUTHORIZATION (Transact-sql)

更新日期: 2005 年 12 月 5 日

更改安全对象的所有权。

主题链接图标

 Transact-SQL 语法约定

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

<entity_type> ::=
    {
        Object | Type | XML Schema Collection | Fulltext Catalog | Schema
    | Assembly | Role | Message Type | Contract | Service 
    | Remote Service Binding | Route | Symmetric Key | Endpoint 
    | Certificate | Database
    }
<entity_type>  ::

更改其所有者的实体的类。Object 是认值。

entity_name

实体名。

principal_name

将拥有实体的主体名称

ALTER AUTHORIZATION 可用于更改任何具有所有者的实体的所有权。数据库包含的实体的所有权,可以传递给任何数据库级的主体。服务器级实体的所有权只能传递给服务器级主体。

ms187359.note(zh-cn,SQL.90).gif

重要提示
sql Server 2005 中,用户可拥有由另一个数据库用户拥有的架构所包含的 OBJECT 或 TYPE。这是对早期版本的 sql Server 的行为的更改。有关详细信息,请参阅用户架构分离OBJECTPROPERTY (Transact-SQL)和 TYPEPROPERTY (Transact-SQL)

以下包含在架构中、类型为“object”的实体的所有权可以传递:表、视图、函数、过程、队列和同义词。

不能传输以下实体的所有权:链接服务器、统计信息、约束、规则、认值、触发器、Service broker 队列、凭据、分区函数、分区方案、数据库主密钥、服务主密钥和事件通知

以下安全对象类的成员所有权不能进行传递:服务器、登录用户、应用程序角色和列。

仅当传递架构包含的实体的所有权时,SCHEMA OWNER 选项才有效。SCHEMA OWNER 将实体所有权传递给它所在的架构所有者。只有类 OBJECT、TYPE 或 XML SCHEMA COLLECTION 的实体是架构包含的。

如果目标实体不是数据库,且该实体正被传递给新的所有者,则该目标的所有权限将被删除

ms187359.Caution(zh-cn,SQL.90).gif

注意:
sql Server 2005 中,架构的行为与早期版本的 sql Server 中的行为不同。假设架构与数据库用户等价的代码不能返回正确的结果。在曾经使用过以下任何 DDL 语句的数据库中,不应当使用旧目录视图(包括 sysobjects):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)

特殊事例和条件

下表列出了适用于更改授权的特殊事例、异常和条件。

条件

DATABASE

无法更改系统数据库 mastermodeltemp、资源数据库或用作分发数据库数据库的所有者。主体必须为登录名。如果主体是没有相应 sql Server 登录的 Windows 登录,则该主体必须拥有数据库的 CONTROL SERVER 权限和 TAKE OWNERSHIP 权限。如果主体为 sql Server 登录,则无法将该主体映射到证书或非对称密钥。相关别名将映射到新数据库所有者。DBO SID 将在当前数据库和 sys.databases 中更新。

OBJECT

无法更改触发器、约束、规则、认值、统计信息、系统对象、队列、索引视图或具有索引视图的表的所有权。

SCHEMA

传递所有权时,没有显式所有者的架构包含的对象的权限将被删除。无法更改 sysdbo或 @R_890_4045@ion_schema 的所有者。

TYPE

无法更改属于 sys 或 @R_890_4045@ion_schema 的 TYPE 的所有权。

CONTRACT、MESSAGE TYPE 或 SERVICE

无法更改系统实体的所有权。

SYMMETRIC KEY

无法更改全局临时密钥的所有权。

CERTIFICATE 或 asymmetric KEY

无法将这些实体的所有权传递给角色或组。

ENDPOINT

主体必须为登录名。

需要对实体具有 TAKE OWNERSHIP 权限。如果新所有者不是执行该语句的用户,那么:1) 如果新所有者是用户登录名,则需要该所有者的 IMPERSONATE 权限;2) 如果新所有者是角色,则需要该角色中的成员身份或该角色的 ALTER 权限;3) 如果新所有者是应用程序角色,则需要该应用程序角色的 ALTER 权限。

Sprockets

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐