
こんにちは、いつも参考にさせて頂いております。
SQL Server2008でDBを管理しているのですが、
あるインスタンスへSQL server認証ができません。
sysadmin権限をつけたら認証されたのですが、できるだけ権限は最小にとどめたいです。
そこで質問です。
SQL server認証に必要な最小のサーバー ロールとデータベースのロールは何でしょうか?
アドバイスやヒントなど、何かお気づきでしたら教えてください。
どうか、宜しくお願いいたします。
[現在の設定]
サーバー ロール:public
ユーザーマッピング:
何も設定していません。
設定しようとDBにチェックすると、ユーザーにログインユーザーと同じ名が入り、
既に存在しています、と怒られてしまいます。
ユーザー名に違う名前(例えばdbo)を設定しても同様に怒られました。
なので、ここの設定は何もしないのが正しいのかな?と思っていますが、
根拠はありません・・
[環境]
SQL Server2008
Windows Server2008
No.1ベストアンサー
- 回答日時:
全くの推測ですが、そのデータベースはリストアしたものでしょうか?
データベースの中の方のセキュリティを開いて、該当ユーザを一旦削除し、それからやり直してみてください。
なお、接続するだけなら既定のデータベースがmasterになっている限りはPublicのみでOKのはずです。
この回答への補足
jamshid6さん、ご回答ありがとうございます。
>全くの推測ですが、そのデータベースはリストアしたものでしょうか?
その通りです。びっくりして一瞬止まってしまいました。
データベースの中の方のセキュリティを開いて、該当ユーザを一旦削除し、それからやり直してみてください。
なお、接続するだけなら既定のデータベースがmasterになっている限りはPublicのみでOKのはずです。
なるほどです。やはり、Publicだけで接続できないとおかしいですよね。
これから試してみたいのですが、もしお時間が許せばあと3点ほど質問にお付き合いいただけないでしょうか。
(1)上記の接続、というのはレコードの挿入や更新も含まれますでしょうか?
(2)ユーザーマッピングの設定は対象DBに対して以下で大丈夫でしょうか?
db_datareader,db_datawriter,db_ddladmin,public
(3)この原因で何か思い当たることがあれば教えていただけないでしょうか。
長々とすみませんが、どうか宜しくお願いいたします。
No.3
- 回答日時:
リストアしたということは、もしかして以下の問題でしょうか?
http://www.microsoft.com/japan/sqlserver/2005/ss …
リストアでログインのマッピングが切れるのはよくあるので注意が必要です。
この回答への補足
3rd_001さん、ご回答ありがとうございます。
非常にわかりやすいサイトですね…。
これを早く見つけたかったです。
>リストアでログインのマッピングが切れるのはよくあるので注意が必要です。
よくあることだとは・・・。
でも、自分がやらかしたと思っていたので少しほっとしました。
(やらかしたのに変わりはありませんが)
ありがとうございました。
No.2
- 回答日時:
>(1)上記の接続、というのはレコードの挿入や更新も含まれますでしょうか?
接続には更新のみならず参照も含まれません。
>(2)ユーザーマッピングの設定は対象DBに対して以下で大丈夫でしょうか?
>db_datareader,db_datawriter,db_ddladmin,public
ロールについてはDDL権限も与えるならば、その4つのロールで足りるでしょう。
>(3)この原因で何か思い当たることがあれば教えていただけないでしょうか。
他の環境からリストアしたデータベースの場合、元の環境のユーザは内部管理レベルでは今の環境のユーザとは同じものとみなされないため、
「インスタンスレベルでは割り当てられないように見えるがデータベースレベルでは存在する」という事象がおこります。
でもユーザ名は同じなので、割当てようとすると「既に存在します」とエラーになります。
やはり一旦データベースレベルのユーザは削除し、インスタンスレベルで割り当て直すのが一般的かと思います。
この回答への補足
jamshid6さん、ご回答ありがとうございます。
>(1)上記の接続、というのはレコードの挿入や更新も含まれますでしょうか?
>接続には更新のみならず参照も含まれません。
>(2)ユーザーマッピングの設定は対象DBに対して以下で大丈夫でしょうか?
>db_datareader,db_datawriter,db_ddladmin,public
>ロールについてはDDL権限も与えるならば、
>その4つのロールで足りるでしょう。
不安を解消していただきありがとうございます。DDL権限も欲しいので
サーバーにpublic+DBに上記4ロールでいこうと思います。
>(3)この原因で何か思い当たることがあれば教えていただけないでしょうか。
> 他の環境からリストアしたデータベースの場合、
>元の環境のユーザは内部管理レベルでは今の環境のユーザとは
>同じものとみなされないため、
> 「インスタンスレベルでは割り当てられないように見えるが
>データベースレベルでは存在する」という事象がおこります。
> でもユーザ名は同じなので、割当てようとすると
>「既に存在します」とエラーになります。
そういうことがあるのですね、勉強になります。
また、情報を頼りにサポート情報をみつけたので、早速確認してみたら…
「対応するログインの存在しないユーザー」
http://support.microsoft.com/kb/274188/
USE データベース名
EXEC sp_change_users_login 'Report'
⇒結果:作成したユーザーが見事にひっかかりました。
> やはり一旦データベースレベルのユーザは削除し、
>インスタンスレベルで割り当て直すのが一般的かと思います。
そうさせていただきます。
今回もまた助けていただきありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
接続されてるユーザーを切断す...
-
【DB】同じトランザクション内...
-
一つのテーブルだけを復元(リス...
-
警察はスマホに保存した動画や...
-
SQLLDRで、10M程度のテキストの...
-
Sqliteで使えない文字。
-
VSAM,QSAM,BSAM,BPAM,BDAM
-
復元に異常に時間がかかる
-
accessの処理が遅い
-
マスタメンテとは?
-
1回目の実行に3分、2回目の実行...
-
SQLローダーで複数のCSVファイ...
-
エクセルのフィルタ抽出が固まる
-
MS-Accessのエクスポートで異常...
-
SQLServerのDBのうちテーブルを...
-
PCが悪くなって新しいPCにSSMS...
-
EXCEL VBAによるEXCELファイル...
-
ADOで別ユーザが開いているエク...
-
復旧中のデータベースについて
-
postgresql についてです
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
接続されてるユーザーを切断す...
-
データベース(MySQL,PostgreSQ...
-
ASPによる アクセス2000のデー...
-
ファイルへのアクセスでエラー...
-
作成したDBを使いたい
-
データベースで
-
VC++でSQL Serverに接続するには
-
「パッシブシャットダウン」っ...
-
SQLServer6.5 sp_whoでプロセス...
-
SQL server認証に必要な最低限...
-
MSDEって何ですか?
-
postgresql についてです
-
復旧中のデータベースについて
-
【DB】同じトランザクション内...
-
エクセルのフィルタ抽出が固まる
-
復元に異常に時間がかかる
-
一つのテーブルだけを復元(リス...
-
MS-Accessのエクスポートで異常...
-
SQL Server Management Studio ...
-
期限切れのバックアップの削除
おすすめ情報