我需要在地理复制数据库上创建登录名和用户。用户将被授予此数据库上的'db_datareader'角色。如何在Azure中的地理位置冗余数据库上创建登录名和用户?
尝试的方法是使用SID(相同的身份)的参数,如下所示:
-- 1. PRIMARY_DATABASE: Run on master database of Primary Database to create login
CREATE LOGIN [LOGINUSER] WITH password='XYZ'
GO
-- 2. Select details for created SQL login
SELECT [name], [sid]
FROM [sys].[sql_logins]
WHERE [type_desc] = 'SQL_Login'
AND [name] = 'LOGINUSER'
GO
-- 3. SECONDARY_DATABASE: Run on master database of Secondary Database to create login with associated SID
CREATE LOGIN [LOGINUSER]
WITH PASSWORD = 'XYZ',
SID = <SID from Step 2>
GO
虽然登录创建工作在两个数据库罚款,我被允许在PRIMARY_DATABASE访问,而拒绝访问与以下错误secondary_database的:
The server principal "LOGINUSER" is not able to access the database "master" under the current security context.
Cannot open user default database. Login failed.
Login failed for user 'LOGINUSER'. (Microsoft SQL Server, Error: 916)
- 这是设立在地理复制数据库的登录正确的做法?
- 如何在这些数据库上设置用户?
您能澄清这是针对Azure SQL数据库还是针对在Azure虚拟机上运行的SQL Server?对于启用了读取访问地理复制功能的Azure SQL数据库,上述方法不应该是必需的。 –
这将用于Azure SQL数据库。所以应该自动复制登录和用户? – sfarrugia
正确,无需设置任何“备用服务器”凭证。 –