2016-09-28 8 views
1

Azure Active Directory統合認証を使用しようとしている2つのデータベースを持つAzure SQL Serverがあります。これらのデータベースの1つが重要であり、ほとんどのユーザーはこのデータベースに対して「読み取り」アクセスのみを許可する必要があります。Active Directory統合認証を使用して特定のアクセス許可を持つ新しいユーザーをAzure Sqlデータベースに追加する

「リーダーの役割」を持つ新しいユーザーを追加するには、私は次のようでした:

  • は、Azureのポータルからアクセス制御(IAM)の下でリーダーの役割を持つユーザーを追加しました。 この手順の後、ユーザーは接続できませんでした。

  • そしてIは、以下のコマンドを使用してユーザを追加しようとした:

    は、ユーザのCREATE [[email protected]】外部プロバイダFROM。

    sp_addrolemember db_datareader、[[email protected]];

ユーザーは、まだAAD統合認証を使用してサーバーに接続できません。どちらの場合も、匿名ログオンエラーが発生します。

Click to see the snip of the error message

私は何かが足りないのですか?そうでない場合は、特定の権限を持つユーザーをデータベースに追加することができますか?

+0

何IAMの下に「リーダーの役割」を割り当てるのですか? (私の知る限り、あなたのデータベースへのアクセスを許可するものはありません。) あなたのサーバーでAAD認証がまったく機能しましたか?あなたは私にエラーメッセージをそのまま教えてもらえますか? –

+0

@drediske - IAMの下に「Reader」という名前のロールがあり、すべてを表示できますが、変更はできません。AAD Authは、サーバーのAAD管理者として割り当てたユーザーに対して正常に動作しています。私は上記のエラーメッセージのスナップを追加しました。 –

+0

匿名ログオンエラーは、接続するデータベースを指定していない場合に発生します。 SSMSログイン画面で「オプション」を選択して、接続するデータベース名を入力するだけです。これは、ユーザーが作成されたデータベースのユーザーに含まれているためです。マスターには存在しません。 –

答えて

4

遅れて申し訳ありません。

ええ、あなたは2つの異なるレベルのアクセス制御を混乱させました。あなたが記述したIAMコントロール(読者役割の割り当て)により、ユーザーはAzure Portalの設定を表示(読み込み)することができます。代わりに、私はあなたがユーザ(AAD認証)をにできるようにしたいと思うだけで、サーバのデータを読む。これはT-SQL経由で行われ、ポータルで定義されているアクセス制御とは関係ありません。

これで、データベースレベルで外部ユーザー(AADアクセス)を作成しようとしていて、そのユーザーに読み取り権限が必要です。すべての手順をカバーしていることを確認してください。outlined hereあなたは、SQL ServerのAADの管理者を割り当てたことを確認してください)

1:

一見、以下が必要な手順かもしれません。

2.)ユーザを作成するデータベースに接続していることを確認してください。マスターデータベースではない通常、非Azure SQL Serverインスタンスと同じです。次を使用してT-SQLを介してユーザを作成します。 CREATE USER <Azure_AD_principal_name> FROM EXTERNAL PROVIDER;

3)そのデータベース上のユーザーのdb_datareader権限を付与します。

ALTER ROLE db_datareader ADD MEMBER <Azure_AD_principal_name> 
GO 
関連する問題