web-dev-qa-db-ja.com

SQL Server 2008:ユーザー名に特権を付与するにはどうすればよいですか?

SQL Server認証を通じてODBC接続を確立できる必要があります。

SSMSでは、特定のデータベースですべての権利を持つことができるようにユーザーに許可を与えるにはどうすればよいですか?

sSMSでこれをグラフィカルに行う方法はありますか?

ユーザーにすべての読み取り権限を付与する場合は、次を使用できます。

EXEC sp_addrolemember N'db_datareader', N'your-user-name'

これにより、デフォルトのdb_datareaderロール(すべてのテーブルの読み取り権限)がそのユーザーに追加されます。

db_datawriterロールもあります。これは、すべてのテーブルに対するすべてのWRITEパーミッション(INSERT、UPDATE、DELETE)をユーザーに付与します。

EXEC sp_addrolemember N'db_datawriter', N'your-user-name'

さらに細かくする必要がある場合は、GRANTコマンドを使用できます。

GRANT SELECT, INSERT, UPDATE ON dbo.YourTable TO YourUserName
GRANT SELECT, INSERT ON dbo.YourTable2 TO YourUserName
GRANT SELECT, DELETE ON dbo.YourTable3 TO YourUserName

など-特定のテーブルに対するSELECT、INSERT、UPDATE、DELETEパーミッションを細かく付与できます。

これはすべて SQL ServerのMSDN Books Online に文書化されています。

そして、はい、グラフィカルに行うこともできます-SSMSで、データベースにアクセスし、Security > Usersにアクセス許可を付与するユーザーを右クリックし、下部にあるProperties adnで、「データベースロールメンバーシップ」を表示します。ユーザーをdbロールに追加します。

alt text

132
marc_s

本当にすべての権利を持たせたい場合:

use YourDatabase
go
exec sp_addrolemember 'db_owner', 'UserName'
go
57
Joe Stefanelli

次のように。ユーザーデータベースの所有者になります。

EXEC sp_addrolemember N'db_owner', N'USerNAme'
18
SQLMenace