国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

Mssql批量修改權限

2024-07-21 02:31:59
字體:
來源:轉載
供稿:網友

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

     2 如果所有表都存在此問題,這是就要編寫存儲過程實現批量修改了
      
         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'

這樣就完成了批量修改權限的工作


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 清新县| 揭西县| 顺义区| 夏津县| 荆州市| 积石山| 聂拉木县| 米林县| 连江县| 张家口市| 彭阳县| 响水县| 吉木萨尔县| 边坝县| 克拉玛依市| 辽宁省| 林西县| 崇信县| 陵水| 阿合奇县| 浮梁县| 莫力| 西安市| 石台县| 色达县| 五寨县| 吴忠市| 永善县| 芷江| 贵德县| 中西区| 米林县| 老河口市| 大邑县| 高安市| 无为县| 娄烦县| 双鸭山市| 龙州县| 桃源县| 施秉县|