4

geo レプリケートされたデータベースにログインとユーザーを作成する必要があります。ユーザーには、このデータベースに対する「db_datareader」の役割が付与されます。

試行されたアプローチは、次のように SID (同一 ID) パラメーターを使用することでした。

-- 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)
  1. これは、geo レプリケートされたデータベースでログインを設定するための正しいアプローチですか?
  2. これらのデータベースでユーザーを設定するにはどうすればよいですか?
4

4 に答える 4

3

プライマリから取得した SID から、他のサーバーでもログインを作成する必要があります。それ以外の場合は、ユーザーが読み取り専用コピーに自動的にレプリケートされるように、SQL Server / db の包含ユーザー機能を使用できます。

于 2016-05-16T23:59:40.280 に答える
1

master db へのローカル アクセス権がないようです。別のログインを介してマスターにアクセスしようとしましたか? そうでない場合は、マスターでローカル ユーザーを作成し、それを使用して接続することをお勧めします。

于 2016-05-23T20:21:11.673 に答える