5 sql-server-2005 sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012
2013 年 12 月,一个名为 user1 的用户在 SQL 2008 上创建了一个数据库。今天,我们将从服务器中删除该用户(/所有者)。那么数据库的所有者属性将显示什么?
And*_*ies 10
您必须先更改该用户拥有的每个数据库的所有权,然后才能删除该用户。
使用 SSMS 或您可以使用 T-SQL 更改所有权
use database_name
EXEC sp_changedbowner 'newowner'
Run Code Online (Sandbox Code Playgroud)
以下查询允许您查询特定登录名拥有的所有数据库。
use master
select database_id, name, suser_sname(owner_sid) from sys.databases where suser_sname(owner_sid) = 'logintoremove'
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用此信息批量更新所有权。
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3115 次 |
最近记录: |