質問: 読み取り専用モードを提供するMS SQLクライアント 非常に機密性の高いデータを含むMS SQLデータベースがあります。何かが壊れた場合、惑星の半分は混乱に陥ります。ほぼ:-) いくつかの制限付きアクセス権を持つデータベースユーザーがいますが、十分に制限されていないので、間違いをした場合には何らかのダメージを与える可能性があります。基本的には、いくつかのテーブルからSELECTを行うだけで、ファンシーなソート、フィルタリング、結合などが必要です。クライアントソフトウェア(HeidiSQLに慣れています)を使用したいと思います。しかし、私は本当に間違ったボタンをクリックしてデータを傷つけることを恐れている。 1つのデータベースセッションに対して自分のアクセス許可を制限する方法はありますか?または、読み取り専用モードを提供する安全なツールがありますか? HeidiSQLは、残念ながら、ありません。
回答: 私はこれを行う唯一の安全な方法はDBMS側にあると私は思う。あなたが言ったように、一部のユーザーが誤って何かをやっているかもしれません。 SQL Serverでは、ユーザーを `db_datareader`.aspx) ロールで、ユーザーが `SELECT` のみを実行できるようにします。 > db_datareader固定データベースロールのメンバーは、データベース内の任意のテーブルまたはビューに対してSELECTステートメントを実行できます。 > > データベースサーバー上で次のコマンドを実行すると、その役割を持つ新しいユーザーを作成できます。 ``` exec sp_addrolemember 'db_datareader',YourLogin ``` 見る: * ユーザーにすべてのデータベースへの読み取り専用アクセスを許可する方法 * SQL Serverのデータベースにユーザーの読み取りアクセスを許可するにはどうすればいいですか? この制限されたユーザーを使用すると、他のユーザーがHeidiSQLなどの任意のクライアントを使用してデータを参照できるようになります。データベースの内容を変更することはできません。