SQL Server 2005更改当前数据库的所有者
2014-09-15 10:49
225 查看
语法
sp_changedbowner [ @loginame = ] 'login' [ , [ @map= ] remap_alias_flag ]
参数
[ @loginame = ] 'login'当前数据库的新所有者的登录 ID。login 的数据类型为 sysname,无默认值。login 必须是一个已有的 SQL Server 登录名,或者是 Microsoft Windows 用户。如果login 已通过数据库内现有的别名或用户安全帐户访问了数据库,则该登录名不能成为当前数据库的所有者。为了避免发生上述情况,请首先删除当前数据库内的别名或用户。
[ @map = ] remap_alias_flag
值 true 或 false,它指示已分配给旧的数据库所有者 (dbo) 的现有别名是映射到了当前数据库的新所有者,还是已被删除。remap_alias_flag 的数据类型为varchar(5),默认值为 NULL。这指示旧的 dbo 的任意现有别名都映射到当前数据库的新所有者。false 指示删除旧的数据库所有者的现有别名。
返回代码值
0(成功)或 1(失败)
备注
执行 sp_changedbowner 之后,新所有者称为数据库中的 dbo 用户。dbo 拥有执行数据库中所有活动的暗示性权限。不能更改 master、model 或 tempdb 系统数据库的所有者。
若要显示有效 login 值的列表,请执行 sp_helplogins 存储过程。
执行只有 login 参数的 sp_changedbowner 会将数据库所有权改为 login,并将先前分配给 dbo 的用户别名映射到这一新的数据库所有者。
使用 ALTER AUTHORIZATION 语句可以更该任意安全对象的所用者。有关详细信息,请参阅 ALTER AUTHORIZATION (Transact-SQL)。
权限
要求具有对数据库的 TAKE OWNERSHIP 权限。如果新所有者在数据库中具有对应的用户,则要求具有对登录名的 IMPERSONATE 权限,否则要求具有对服务器的 CONTROL SERVER 权限。
示例
以下示例将登录名 sa 作为当前数据库的所有者,并映射到已分配给旧的数据库所有者的 sa现有别名。
use [GoodLuck]
EXEC sp_changedbowner 'sa'
相关文章推荐
- 更改SQL Server更改当前数据库的所有者:sp_changedbowner
- 更改SQL Server更改当前数据库的所有者:sp_changedbowner
- SQL server 2005 更改数据库名称
- Visual C# 2008+SQL Server 2005 数据库与网络开发--12.2.10 编程的方式更改控件属性
- 更改当前数据库中对象的所有者
- 在sql server 2005数据库中更改数据架构
- sql server 2005 用户、组或角色 在当前数据库中已存在 解决办法
- sql server 2005 无法删除数据库 "#Test",因为该数据库当前正在使用
- SQL Server 2005如何更改数据库文件的物理文件名
- 在SQL Server 2005数据库中更改数据架构
- 在SQL Server 2005数据库中更改数据架构
- SQL Server 2005 出现“此数据库没有有效所有者”错误的解决方法
- 更改SQL Server 2005数据库中tempdb位置的方法
- 更改当前数据库的所有者
- 在SQL Server 2005数据库中更改数据架构
- SQL Server 2005 出现“此数据库没有有效所有者”错误的解决方法
- SQL server 2005 更改数据库名称
- 转载 :sql server 2005 无法删除数据库 "#Test",因为该数据库当前正在使用
- sql server 2005 用户、组或角色在当前数据库中已存在的解决办法
- 更改当前数据库中 SQL Server 用户与 Microsoft® SQL Server™ 登录之间的关系