アプリ版:「スタンプのみでお礼する」機能のリリースについて

MSDEとSQLServerでReadOnlyのユーザを作成する方法を
教えてください。

A 回答 (3件)

なお、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]

もし、質問の趣旨が違っていたら、ごめんなさい
    • good
    • 3

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での登録や更新・削除の禁止を
しただけで、ストアド内で、登録・更新・削除を行っている場合は、
ストアド単位で権限を設定する必要があります。
    • good
    • 1

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文字までしか入力できないため)
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す