怎么样删除一个已经建立对象的用户名

liujinrong986 2003-12-04 10:57:58
我在一个数据库上建立一个用户名的以后想删除它,结果提示不能删除一个已经建立对象的用户.请高手帮忙.
...全文
219 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
liujinrong986 2003-12-08
  • 打赏
  • 举报
回复
是不是要一张表一张表的转移啊.
liujinrong986 2003-12-08
  • 打赏
  • 举报
回复
怎么显示该用户拥有的对象呢?
CrazyFor 2003-12-04
  • 打赏
  • 举报
回复

Transact-SQL 参考


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(失败)

注释
对象所有者(或拥有对象的组或角色的成员)对对象有特殊的权限。对象所有者可以执行任何与对象有关的 Transact-SQL 语句(例如 INSERT、UPDATE、DELETE、SELECT 或 EXECUTE),也可以管理对象的权限。

如果拥有对象的安全帐户必须要除去,但同时要保留该对象,请使用 sp_changeobjectowner 更改对象所有者。该过程从对象中删除所有现有权限。在运行 sp_changeobjectowner 之后,需要重新应用要保留的任何权限。

由于这个原因,建议在运行 sp_changeobjectowner 之前,编写现有权限的脚本。一旦更改了对象的所有权,可能要使用该脚本重新应用权限。在运行该脚本之前需要在权限脚本中修改对象所有者。有关编写数据库脚本的更多信息,请参见编写数据库文档和脚本。

可以使用 sp_changedbowner 更改数据库的所有者。

权限
只有 sysadmin 固定服务器角色和 db_owner 固定数据库角色成员,或既是 db_ddladmin 固定数据库角色又是 db_securityadmin 固定数据库角色的成员,才能执行 sp_changeobjectowner。

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

EXEC sp_changeobjectowner 'authors', 'Corporate\GeorgeW'


请参见

CREATE TABLE

sp_changedbowner

系统存储过程

©1988-2000 Microsoft Corporation。保留所有权利。
LoveSQL 2003-12-04
  • 打赏
  • 举报
回复
先删除该用户的对象,再删除该用户.
zjcxc 元老 2003-12-04
  • 打赏
  • 举报
回复
--下面这个是将所有表的所有者设置为默认值:dbo
exec sp_MSForEachTable 'sp_changeobjectowner ''?'',''dbo'''
zjcxc 元老 2003-12-04
  • 打赏
  • 举报
回复
楼上才是正确的.我搞错了.取消权限并不能取消所有者属性.

必须将所有者为要删除用户的对象有所有者改为其他用户:
sp_changeobjectowner '对象名','另一用户名'

welyngj 2003-12-04
  • 打赏
  • 举报
回复
必须使用 sp_changeobjectowner 将对象的所有关系更改到另一用户。删除用户时,也就自动地删除与该用户相关的权限,并且将这些相关的权限从该用户所在的任何角色中删除。
zjcxc 元老 2003-12-04
  • 打赏
  • 举报
回复
如果不删除对象.

企业管理器--右键你要删除的用户--属性--将"数据库角色成员"中的选择,除"public"外,全部取消--确定.

再删除.
zjcxc 元老 2003-12-04
  • 打赏
  • 举报
回复
先删除这些对象,再删除用户.
zkhj 2003-12-04
  • 打赏
  • 举报
回复
先删除该用户的对象,再删除该用户.

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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