如何更改sql server数据库所有者的对象

tom0311 2009-04-21 06:18:12
我新建的表默认的所有者是dbo的,我想改成比如stp的,该如何操作
...全文
261 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
sp_changeobjectowner 

更改当前数据库中对象的所有者。

语法
sp_changeobjectowner [ @objname = ] 'object' , [ @newowner = ] 'owner'

参数
[@objname =] 'object'

当前数据库中现有的表、视图或存储过程的名称。object 的数据类型为 nvarchar(517),没有默认值。object 可用现有对象所有者限定,格式为 existing_owner.object。

[@newowner =] 'owner'

即将成为对象的新所有者的安全帐户的名称。owner 的数据类型为 sysname,没有默认值。owner 必须是当前数据库中有效的 Microsoft? SQL Server? 用户或角色或 Microsoft Windows NT? 用户或组。指定 Windows NT 用户或组时,请指定 Windows NT 用户或组在数据库中已知的名称(用 sp_grantdbaccess 添加)。

返回代码值
0(成功)或 1(失败)



示例
下面的示例将 authors 表的所有者改为 Corporate\GeorgeW。

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW'



sp_changedbowner
更改当前数据库的所有者。

语法
sp_changedbowner [ @loginame = ] 'login'
[ , [ @map = ] remap_alias_flag ]

参数
[@loginame =] 'login'

当前数据库新所有者的登录 ID。login 的数据类型为 sysname,没有默认值。login 必须是已存在的 Microsoft? SQL Server? 登录或 Microsoft Windows NT? 用户。如果 login 通过当前数据库内的现有别名或用户安全帐户已拥有访问该数据库的权限,则不能成为该数据库的所有者。为了避免这种情况,应先除去当前数据库中的别名或用户。

[@map =] remap_alias_flag

值为 true 或 false,表示旧数据库所有者 (dbo) 的现有别名是映射到当前数据库的新所有者还是要除去。remap_alias_flag 的数据类型为 varchar(5),默认值为 NULL,表示旧 dbo 的任何现有别名均映射到当前数据库的新所有者。false 表示除去旧数据库所有者的现有别名。

返回代码值
0(成功)或 1(失败)

示例
下面的示例使用户 Albert 成为当前数据库的所有者,并将旧数据库所有者的现有别名映射到 Albert。

EXEC sp_changedbowner 'Albert'
liangCK 2009-04-21
  • 打赏
  • 举报
回复
sp_MSForEachTable 'EXEC sp_changeobjectowner ''?'',''stp'''

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧