久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

Mssql批量修改權(quán)限

瀏覽:45日期:2023-11-01 11:44:45

今天恢復一個在別人機器備份的數(shù)據(jù)庫到SQL SERVER,恢復后該數(shù)據(jù)庫中有一個mooip用戶,該用戶是數(shù)據(jù)庫所有者,很多表的所有者也是他,但安全性里的登錄中沒有該用戶,刪除不了該用戶,提示“因為選定的用戶擁有對象,所以無法除去該用戶”! 具體解決方式如下: 1 如果是一張表有此問題,解決方式如下: exec sp_changeobjectowner 'mooip.tablename', 'dbo' 這樣就把tablename指定的表的所有者賦值給了dbo用戶

2 如果所有表都存在此問題,這是就要編寫存儲過程實現(xiàn)批量修改了 IF OBJECT_ID('ChangeAll') IS NOT NULL Drop PROC ChangeAll GO

Create PROCEDURE ChangeAll ( @old sysname, @new sysname ) AS DECLARE @objname sysname

SET NOCOUNT ON

IF USER_ID(@old) IS NULL 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

DECLARE owner_cursor CURSOR FOR

Select name FROM sysobjects Where uid = USER_ID(@old) 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

CLOSE owner_cursor DEALLOCATE owner_cursorz GO

EXEC ChangeAll @old = 'mooip', @new = 'dbo'

這樣就完成了批量修改權(quán)限的工作

主站蜘蛛池模板: 蕲春县| 普格县| 乐业县| 嵊州市| 同德县| 留坝县| 东山县| 虎林市| 宣武区| 忻城县| 锦州市| 荥经县| 将乐县| 台南县| 望江县| 保山市| 泾源县| 安吉县| 长沙县| 合阳县| 汉沽区| 吉安市| 古蔺县| 六盘水市| 二手房| 阿巴嘎旗| 南通市| 北宁市| 柳林县| 白沙| 新巴尔虎左旗| 永清县| 阜城县| 南江县| 安远县| 楚雄市| 红安县| 涿鹿县| 泸西县| 禄劝| 江津市|