2017-06-12 15 views
0

SQL Server MNGT Studio 2012には、特定のユーザーに読み取り専用アクセスのみを許可するデータベースがあります。グレーアウト編集トップ200行のSSMS

その後一度私に記録されたデータベース名がSQLSERVER01

で、引数のために...サーバーにログイン、(管理者である)私はそうはDatabasesSecurityServer ObjectsReplicationManagement、およびSQL Server Agentを参照してください。私はSecurityタブに入り、Loginsに行きます。読み取り専用アクセスを許可するユーザーには、すでにログインがあります。だから私は彼らのログインをダブルクリックします。私はUser Mappingに行く。私は彼らに読み取り専用アクセス権を与えたいデータベースを探します。私はデータベース名の横のチェックボックスをクリックして、私はユーザにdb_datareaderpublicを与えます。

私はユーザを呼び出してデータベース内のテーブルを見ることができますが、テーブル名を右クリックすると、それでもEdit Top 200 Rowsというオプションが表示され、それをクリックするとそのテーブルの編集GUIを参照してください。今はデータを入力してテストしていないので、データを実際に編集したり追加したりすることができるかどうかは、あまりにも危険です。

私の質問は、このユーザーに適切なアクセス権を与えたかどうかです。もしそうなら、「トップ200の行を編集する」オプションをグレーアウトするにはどうすればよいですか?そうでない場合、私は何をする必要がありますか?

何か助けていただければ幸いです。

+1

サーバーロールとデータベースロールがあります。 db_datareaderはデータベースロールです。追加の権限を与えるサーバーロール(sysadminなど)がないと確信していますか?私はそのメニューがどのように動作するのか正確にはわかりませんが、別のデータベースでテストすることはできませんか? –

+0

@snow_FFFFFFサーバーの役割を確認しました。このユーザーは、sysadminを含め、いずれにも属していません。 –

答えて

1

SSMSは、ユーザーの機能またはUIオプションを決定するためのアクセス許可を照会しません。たとえば、DDLの変更権限はないかもしれませんが、alter/create文のスクリプトを作成できます。行の編集を取り除くことはできませんが、権限がない場合は、編集した行からフォーカスを移動しようとするとコミットが失敗します。あなたが助成金の得られる層を表示するには、この機能を使用することができます効果的な許可を確認したい場合は

は/拒否します。 https://docs.microsoft.com/en-us/sql/relational-databases/system-functions/sys-fn-my-permissions-transact-sql

を一般的に、ユーザのログインが最小限の権限は、その後にロールを使用していることを確認してください以前にレビュー/テストされたDBレベル。

+0

ああ、ちょうどそれをテストしました。あなたが正しいです!次の行にタブするときに拒否されます。なぜ私は自分の笑でそれをテストしなかったのかわからないが、とにかく感謝! –

関連する問題