我在AWS中创建了一个RDS实例,运行SQL Server 2012。我能够登录并成功创建新的数据库(通过SSMS和sqlcmd.exe)。
我面临的问题是,由于在RDS创建过程中设置的“godmode”帐户权限不足,我无法为每个应用程序数据库创建用户。
我有超过5个应用程序的数据库在这个RDS实例上,并希望设置每个应用程序都有自己的登录信息,并且仅作为其自己的数据库的用户。
我可以创建登录信息,但无法将该登录信息分配为数据库的用户。这是否意味着无法完成此操作?我知道RDS有一些限制,但这似乎应该是可能的。我的用例不可能如此独特!
我尝试像这样设置用户:
我面临的问题是,由于在RDS创建过程中设置的“godmode”帐户权限不足,我无法为每个应用程序数据库创建用户。
我有超过5个应用程序的数据库在这个RDS实例上,并希望设置每个应用程序都有自己的登录信息,并且仅作为其自己的数据库的用户。
我可以创建登录信息,但无法将该登录信息分配为数据库的用户。这是否意味着无法完成此操作?我知道RDS有一些限制,但这似乎应该是可能的。我的用例不可能如此独特!
我尝试像这样设置用户:
DECLARE @Username nvarchar(255) = 'test1';
DECLARE @Password nvarchar(255) = 'sUp3rS3crEt';
USE [Application1]
IF NOT EXISTS
(SELECT name
FROM master.sys.server_principals
WHERE name = @Username)
BEGIN
EXEC sp_addlogin @Username, @Password
END
BEGIN
EXEC sp_adduser @Username, @Username, 'db_owner'
END
在使用sp_adduser时失败
Msg 15247, Level 16, State 1, Procedure sp_adduser, Line 35 [Batch Start Line 0]
User does not have permission to perform this action.
尝试通过SSMS手动创建用户也会因权限问题而失败。
这是RDS与Sql Server 2012的实际预期行为吗?
WITH DEFAULT_SCHEMA=[dbo]
已经解决了问题。谢谢! - Adil B