SQL Serverのユーザーにdb_datareader
およびdb_datawriter
ロールを割り当てる正確なSQLとは何ですか?
ユーザー名はMYUSER
で、データベースはMYDB
です。
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;
SQLServer 2012よりエレガント alter role :
use mydb
go
ALTER ROLE db_datareader
ADD MEMBER MYUSER
go
ALTER ROLE db_datawriter
ADD MEMBER MYUSER
go
新しいロールを作成し、このロールに実行、選択などの権限を付与し、最後にこのロールにユーザーを割り当てる方が良いでしょう。
役割を作成
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