web-dev-qa-db-ja.com

ユーザーにSQL Serverのデータベースへの読み取りアクセスを許可するにはどうすればよいですか?

読み取りおよび書き込みアクセス権を持つ特定のデータベースへのアクセスをユーザーに許可したい。ユーザーはすでにドメインで利用可能ですが、DBでは利用できません。

それでは、新しいユーザーとパスワードを作成して、そのアクセス権をどのように与えることができますか?

誰かが、新しいユーザーとパスワードを作成せずにユーザーにアクセスを許可したいユーザー、ドメイン、DBを指定するだけでそれができると言った。

これは私が実装していた古い方法です。それは動作しますが、ドメインで利用可能なものを使用するのではなく、新しいログインとユーザーを作成します:

use DBName;
create login a_2 with password='Aa123';
create user a_2 for login a_2;
grant insert to a_2;
grant select to a_2;
30
Q8Y

これは2段階のプロセスです。

  1. windowsアカウントに基づいて、そのユーザーのSQL Serverにloginを作成する必要があります

    CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
    
  2. データベースにアクセスするには、次のログイン許可を付与する必要があります。

    USE (your database)
    CREATE USER (username) FOR LOGIN (your login name)
    

そのユーザーをデータベースに追加したら、必要な権限を与えることができます。 db_datareaderデータベースロールを割り当てて、すべてのテーブルを読み取ることができます。

USE (your database)
EXEC sp_addrolemember 'db_datareader', '(your user name)'
70
marc_s