13

私は、Web サイトに使用する 2 つのデータベースを持つ SQL サーバー データベースを持っています。

製品在庫を検索するためのデータベース 1 の読み取り専用のユーザー アカウントを既に持っています。データベース 2 のみ、テーブル 1 のみ、レコードの挿入のみを許可する (更新や削除などは許可しない) 別のアカウントを作成したいと思います。アクセス制限で可能な限り冗長にしようとしています(誰かが何らかの形で何かを通過させた場合、SQLインジェクションを防止しようとするコードの上に、データベース自体にそれを許可させたくありません)。

結論として、SQL サーバーで、y データベースの x テーブルのみへのアクセスを制限し、レコードの読み取り/挿入のみを実行できるユーザーを作成するにはどうすればよいですか?

4

4 に答える 4

31

ユーザーを作成し、db_datareader や db_datawriter などの役割を与えないでください

それからGRANT INSERT ON YourTable TO SomeUser

挿入して選択する場合

GRANT INSERT, SELECT ON YourTable TO SomeUser

于 2013-03-04T14:45:39.670 に答える
6

(1) 1 つのテーブルのみへの制限付きアクセス権をユーザーに付与するには

GRANT SELECT ON [schemaName].[tableName] to [username]
Go 

(2)INSERT許可を与えること。

GRANT INSERT ON [schemaName].[tableName] TO [username]
于 2013-03-04T14:48:15.877 に答える
1

Syntax for granting access to a single table:

GRANT access_type ON table_name TO [user name]

Syntax for revoking access for a single table:

REVOKE access_type ON table_name FROM [user name]

where access_type can be SELECT, INSERT, DELETE...

于 2016-06-04T19:24:52.137 に答える