- 締切済み
MSDEまたはSQLServerでReadOnlyのユーザを作成
MSDEとSQLServerでReadOnlyのユーザを作成する方法を 教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kero_mio
- ベストアンサー率90% (94/104)
なお、GUIベースで実行できない場合は、 SQLで実行することもできます。 -- ログインユーザを作成する EXEC master.dbo.sp_addlogin @loginame = N'ログインID', @passwd = N'パスワード', @defdb = N'該当DB名' GO EXEC dbo.sp_grantdbaccess @loginame = N'ログインID', @name_in_db = N'ログインID' GO EXEC sp_addrolemember N'db_datareader', N'ログインID' GO EXEC sp_addrolemember N'db_denydatawriter', N'ログインID' 先ほども申し上げた通り、ここで書き込み禁止に設定したのは、 あくまでもSQLで登録・更新・削除を実行した場合のものであり、 ストアドから登録・更新・削除を行うようになっている場合は、 ストアドの実行権限で制御しなければなりません。 DENY EXECUTE ON 書き込み処理が書かれているストアド TO [ログインID] もし、質問の趣旨が違っていたら、ごめんなさい
- kero_mio
- ベストアンサー率90% (94/104)
GUIで設定の場合 SQL Server2005のケース ・Management Studioを開く(管理者権限で該当DBサーバにログインする) ・任意のDBサーバ→[セキュリティ]→[ログイン]を選択する ・[ログイン]を右Clickし、[新しいログイン]を選択する ・[全般]タブで、ログインIDを設定し、 Windows認証 or SQLServer認証を選択する。 SQLServer認証なら、パスワードを設定する ・左横の[ユーザマッピング]タブを選択する ・作成ユーザが接続可能なDBを選択する(マップ欄のCheckをONにする) ・すろと画面下部に「データベース ロールメンバシップ」を 選択するエリアが表示されますので、 public, db_datareader(読み取り専用)、 db_denydatawriter(登録・更新・削除の禁止)を選択し、 OKボタンを押す。 なお、SQL Server2000/2005 ともに、SQLでの登録や更新・削除の禁止を しただけで、ストアド内で、登録・更新・削除を行っている場合は、 ストアド単位で権限を設定する必要があります。
- kero_mio
- ベストアンサー率90% (94/104)
GUIで設定の場合 SQL Server2000のケース ・Enterprise Managerを開く ・[コンソールルート]→任意のSQL Serverグループ→任意のDBサーバ →[セキュリティ]→[ログイン] を選択する ・ログインを右Clickし、[新規ログイン]を選択 ・名前にログインIDをいれ、Windows認証かSQL Server認証かを選択し、 SQL Server認証であれば、パスワードを入力する ・[データベース]アクセスタブを選択する ・作成するユーザが接続できるDBを選択する ・すると下に「データベース ロール」を選択するエリアが 表示されますので、そこで、 public, db_datareader(読み取り許可), db_denydatawriter(登録・更新・削除の禁止)を選択し、 [OK]ボタンを押します。 SQL Server 2005 と、SQLで設定する方法は別で記載します。 (800文字までしか入力できないため)