web-dev-qa-db-ja.com

T-SQLとは何ですかSQL Serverのデータベース内のテーブルへの読み取りおよび書き込みアクセスを許可するには?

SQL Serverのユーザーにdb_datareaderおよびdb_datawriterロールを割り当てる正確なSQLとは何ですか?

ユーザー名はMYUSERで、データベースはMYDBです。

65
ConsultUtah

SQL Server 2012、2014:

USE mydb
GO

ALTER ROLE db_datareader ADD MEMBER MYUSER
GO
ALTER ROLE db_datawriter ADD MEMBER MYUSER
GO

SQL Server 2008の場合:

use mydb
go

exec sp_addrolemember db_datareader, MYUSER 
go
exec sp_addrolemember db_datawriter, MYUSER 
go

データベースのすべてのストアドプロシージャを実行する機能を割り当てるには:

GRANT EXECUTE TO MYUSER;

特定のストアドプロシージャを実行する機能を割り当てるには:

GRANT EXECUTE ON dbo.sp_mystoredprocedure TO MYUSER;
96
cmsjr

SQLServer 2012よりエレガント alter role

use mydb
go

ALTER ROLE db_datareader
  ADD MEMBER MYUSER 
go
ALTER ROLE db_datawriter
  ADD MEMBER MYUSER 
go
11
dani herrera

新しいロールを作成し、このロールに実行、選択などの権限を付与し、最後にこのロールにユーザーを割り当てる方が良いでしょう。

役割を作成

CREATE ROLE [db_SomeExecutor] 
GO

この役割に許可を与える

GRANT EXECUTE TO db_SomeExecutor
GRANT INSERT  TO db_SomeExecutor

ユーザーを追加するには、データベース>セキュリティ>>ロール> databaseroles>プロパティ>追加(右下)、ADユーザーを検索して追加できます

OR

   EXEC sp_addrolemember 'db_SomeExecutor', 'domainName\UserName'

これを参照してください post

0
singhswat