SQL 数据库上可以有多个具有 db_owner 权限的数据库用户吗?

SQL 数据库上可以有多个具有 db_owner 权限的数据库用户吗?

我已经设置了一个远程 SQL 服务器,其中包含一些数据库。具有特定登录名的用户可以在服务器上创建一个数据库,然后可以将其他用户(每个用户具有特定的登录名)分配给新创建的数据库(作为 db_owner)。是否可以让多个数据库用户在 SQL 数据库上拥有 db_owner 权限?如果可以,我该如何授予其他用户 db_owner 权限。

我已经使用 USE dbName 创建了一个登录名;CREATE USER [用户名] FOR LOGIN [用户名];
GO

EXEC sp_addrolemember 'db_owner', [用户名]

使用 master GRANT VIEW ANY DATABASE TO [用户名]; 现在在我给定的数据库中,我有 2 个用户,一个是用户名,另一个是 dbo,它映射到创建数据库的用户上,并且与用户名不同。 之后,我使用 SMO 将这些数据库从远程服务器传输到本地主机,在执行 transferDatabase.TransferData(); 时,我收到以下错误 {“登录名已有一个使用不同用户名的帐户。”} 。 创建传输实例时,我还设置了属性 CopyAllUsers=true。 我该如何修复此问题。

答案1

是的,当然。权限并不意味着用户实际上是数据库的所有者,而“仅仅”意味着他/她对数据库有完全的控制权。

https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/database-level-roles

您可以使用 SQL Server Management Studio 或 T-SQL 授予权限:

https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-addrolemember-transact-sql
https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-role-transact-sql

相关内容