今天恢复一个在别人机器备份的数据库到SQL SERVER,恢复后该数据库中有一个mooip用户,该用户是数据库所有者,很多表的所有者也是他,但安全性里的登录中没有该用户,删除不了该用户,提示“因为选定的用户拥有对象,所以无法除去该用户”! 2 如果所有表都存在此问题,这是就要编写存储过程实现批量修改了 Create PROCEDURE ChangeAll ( SET NOCOUNT ON IF USER_ID(@old) IS NULL DECLARE owner_cursor CURSOR FOR Select name FROM sysobjects Where uid = USER_ID(@old) CLOSE owner_cursor EXEC ChangeAll @old = mooip, @new = dbo 这样就完成了批量修改权限的工作
具体解决方式如下:
1 如果是一张表有此问题,解决方式如下:
exec sp_changeobjectowner mooip.tablename, dbo
这样就把tablename指定的表的所有者赋值给了dbo用户
IF OBJECT_ID(ChangeAll) IS NOT NULL Drop PROC ChangeAll
GO
@old sysname,
@new sysname
)
AS
DECLARE @objname sysname
BEGIN
RAISERROR (The @old passed does not exist in the database, 16, 1)
RETURN
END
IF USER_ID(@new) IS NULL
BEGIN
RAISERROR (The @new passed does not exist in the database, 16, 1)
RETURN
END
OPEN owner_cursor
FETCH NEXT FROM owner_cursor INTO @objname
WHILE (@@fetch_status <> -1)
BEGIN
SET @objname = @old + . + @objname
EXEC sp_changeobjectowner @objname, @new
FETCH NEXT FROM owner_cursor INTO @objname
END
DEALLOCATE owner_cursorz
GO
mssql批量修改权限_数据库技巧
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » mssql批量修改权限_数据库技巧
相关推荐
-      sql语句中的判断功能的使用方法
-      sql语句中的判断功能的使用方法
-      SQL语言中去掉小数点有效数字后面的所有0
-      ASP连接各种数据库的代码
-      在sql语句中实现md5功能
-      给access数据库减肥
-      asp连接access数据库代码(2)
-      ASP连接access数据库代码