Sql-Server

已刪除數據庫所有者之一,並在 sql server 中更改了相應的屬性

  • July 2, 2018

一個名為 user1 的使用者於 2013 年 12 月在 SQL 2008 上創建了一個數據庫。今天,我們將從伺服器中刪除該使用者(/所有者)。那麼數據庫的所有者屬性將顯示什麼?

您必須先更改該使用者擁有的每個數據庫的所有權,然後才能刪除該使用者。

在此處輸入圖像描述

使用 SSMS 更改所有權,或者您可以使用 T-SQL

use database_name
EXEC sp_changedbowner 'newowner'

以下查詢允許您查詢特定登錄名擁有的所有數據庫。

use master
select database_id, name, suser_sname(owner_sid) from sys.databases where suser_sname(owner_sid) = 'logintoremove'

然後,您可以使用此資訊批量更新所有權。

use master
DECLARE @name VARCHAR (50) -- database name
DECLARE @oldOwner VARCHAR (50)
DECLARE @newOwner VARCHAR (50)

SET @oldOwner = 'oldownerlogin'
SET @newOwner = 'newownerlogin'

BEGIN
   DECLARE db_cursor CURSOR FOR
   select name from sys.databases where suser_sname(owner_sid) = @oldOwner
END

OPEN db_cursor 
FETCH NEXT FROM db_cursor INTO @name 

WHILE @@FETCH_STATUS = 0 
BEGIN 
   BEGIN
       EXEC(
           'USE '+@name +';

           EXEC sp_changedbowner ''' +@newOwner+ '''
           ' )
       END

   FETCH NEXT FROM db_cursor INTO @name
END 

CLOSE db_cursor 
DEALLOCATE db_cursor

引用自:https://dba.stackexchange.com/questions/60292