• 締切済み

SQL Serverの認証方法について

SQL Serverについて学習中です。 認証方法の違いについてご教示ください。 SQL Serverには「Windows認証」と「SQL Server認証」の二つの認証方法があるところまでは理解したのですが、ネット検索や手元の資料をみても具体的なものが見えてきません。 (1)「Windows認証」でSQL Serverに接続するには: クライアントPCのWindowsアカウント名/パスワードが、SQL ServerがインストールされているPCに登録されているWindowsのユーザー名/パスワードと一致している必要がある。(一致していても、SQL Serverの設定で接続を拒否されていると接続できない) (2)「SQL Server認証」でSQL Serverに接続するには: SQL Serverの「ログイン」(←Windowsのアカウントではない)に登録されているユーザー名/パスワードと一致すれば、クライアントPCのWindowsアカウントのユーザー名/パスワードが何であっても、データベースに接続できる。 認証方法の違いについては、上記このような理解でよいのでしょうか?? しかし実際には「SQL Server認証」を選択すると、SQL Serverのユーザー名/パスワードだけでなく、Windowsアカウント名/パスワードも一致していないと接続できないように思えます。 つまり 「Windows認証」は「Windows認証だけ」で 「SQL Server認証」は「Windows認証 + SQL Server認証」(両方一致しないといけない) なのではないかという気がしています。 VBやVC#等でローカルアプリを作って複数で使用したいのですが、クライアントPCのアカウント名まで管理するのは厄介です。XPパソコンをAdministratorで使用している人がたくさんいて、Windows認証をクリアできないからです。 クライアントPCのアカウント名やパスワードに関係なく、SQL Serverに登録されたユーザー名/パスワードだけで接続するには、どうしたらよいのでしょうか? よくわかっていないので、よくわからない質問になってしまっていると思いますが、よろしくお願いします。 質問の意味がわからないところは補足しますので、ご指摘ください。

  • pouta
  • お礼率72% (61/84)

みんなの回答

回答No.2

実験した訳ではなく予測で回答しますのであしからず。 一応SQL Server認証は通常はWindows認証は不要です。 (1)Guestユーザーを有効化してみてはどうでしょうか。 (2)昔パソコンへのログインIDがサーバーにも有っ、てそのパスワードが異なると動かない場合がありました、パソコンへのログインIDをサーバーには存在しない物にしたら動きませんか。

pouta
質問者

お礼

回答ありがとうございます。 ご教示いたいだた方法を試す前にサーバー再セットアップを始めてしまったのですが、終わってみたら意図したとおりSQL Server認証だけの環境が実現しました。 2つの認証が同時に有効になってしまったのは、パソコンのエラーだったのでしょうか・・・。 再度同じ症状がでたら、そのときは(1)(2)の方法を試させてもらいます。

  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

> しかし実際には「SQL Server認証」を選択すると、SQL Serverのユーザー名/パスワードだけでなく、Windowsアカウント名/パスワードも一致していないと接続できないように思えます。 そう思った根拠は? > VBやVC#等でローカルアプリを作って複数で使用したいのですが、クライアントPCのアカウント名まで管理するのは厄介です。XPパソコンをAdministratorで使用している人がたくさんいて、Windows認証をクリアできないからです。 そのための SQL Server 認証であるはず。 作成した DB へ接続させるためのユーザーを SQL Server に作成し、そのユーザーを DB に適切な権限でマッピングする必要がある。 db_owner 権限での例はこんな感じで。 http://www.movabletype.jp/documentation/mt5/advanced/creating-a-sql-server-database-2.html

pouta
質問者

お礼

再セットアップで解決しました。 ありがとうございました。

pouta
質問者

補足

回答ありがとうございます。 >そう思った根拠は? SQL Server認証を選択すると、WindowsアカウントのID/PW以外に、アプリケーションレベルで指定するSQL ServerアカウントのID/PWも一致させないと、SQL Serverにログインできないようになったからです。 そもそも、この二つの認証が同時に有効になる状態が正常なのかどうかもわかりません。 Windows認証とSQL Server認証は排他選択であるように思うのですが、なぜこうなったのか不思議です。 ちなみに(書き忘れていましたが)環境はWindows Server 2000 と SQL Server 2000 で、クライアントはほとんどがWindows XPです。接続は「商魂・商管」という業務会計ソフトと、その情報を取得して再加工するオリジナルアプリ(C#やAccessで作成)で使用しています。 リンクを参考にさせてもらいましたが、現時点ではやはり2つの認証情報が一致しないとSQL Serverに接続できません。再起動やODBCの再設定は一応行ってあります。 あきらめるしかないんでしょうか。

関連するQ&A

  • SQL Serverの認証方法について

    Visual Basic6のソフトが入っているPCがあります。 ネットワークを通じて他のPC(サーバー??)にSQL Serverが入っています。 その場合、SQL Serverへの認証は、Windows認証とSQL認証のどちらになるのでしょうか? SQL Server認証の場合は、ユーザ名とパスワードを設定できる個所を Visual Basic 6のある画面に設けておけばいいのでしょうか?

  • SQLサーバ2008R2でのWin認証不具合

    SQLサーバ2008R2でのWindows認証 ドメイン内のサーバにネットワークログインにて ユーザID Administrator パスワード**** 保存する チェック付与 上記でログイン後・・・ 同一サーバのSQLサーバ2008R2にWindows認証でログインしようとすると ログインエラーが発生します。 「ドメイン名\Administratorはログインできません。」 Windows認証なのでWindowsログインIDを見てると思ってましたが 他のクライアントマシンでも同様に行ってみたところ ネットワークログインの直後に同様の事象が発生しました。 詳細等をご存知の方がいれば、教えてください。 よろしくお願いします。

  • SQLServer認証とWIndows認証

    お世話になります。 現在リモートのSQLServerにVB.NETのアプリからADO.NETで接続しようとしていますが、Windows認証の接続ができなく困っております。 sqlcmdコマンド使いSQLServer認証で確認すると以下の方法であっさりできました。 sqlcmd -S DBのホスト名 -U ユーザID -P パスワード -d DB名 しかし、Windows認証は「sqlcmd -S Bのホスト名 -E」を実行するとGuestユーザではログインできるのですが、他ユーザではログインできません。シクライアントPCとDBサーバ間の信頼関係ができていないのが原因のように思われますが、クライアント及びDBサーバのWindowsのログインユーザ名/パスワードは同じ、ワークグループも同じです。 また、SQLServerのManagement Studioを用いてユーザは作成してあります。 エラーは以下となります。 ----------------------------------------------------------- サーバーへの接続を確立しているときにエラーが発生しました。SQL Server 2005 に接続しているときときにこのエラーが発生した場合は、SQL Server の既定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。 (provider: 名前付きパイプ プロバイダ, error: 40 - SQL Server への接続を開けませんでした) ----------------------------------------------------------- お手数お掛けしますが、宜しくお願いします。

  • SQL Server に繋がらない

    SQL Server 2008 へリモート接続できません。環境は下記の通りです。 SQL Server 2008 Work Group Visual Studio 2008 Developer Windows-7 コンピューター名 Y-05 フルコンピューター名 Y-05 ワークグループ    Y-PLAN ユーザーアカウント  東京 太郎 サーバーは、リモート接続可にチェックしてあります。また、ファイヤウオールの例外として TCP/IP ポート1433の設定はしてあります。また、Windows認証とSQL 認証の設定もしてあります。 Windows認証のためのログインIDをSQL Server Management Studioのセキュリティから設定しようとすると、下記の表示がでて設定できません。 Transact – SQLステートメントまたはバッチの実行中に例外が発生しました。 東京 太郎 は有効なWindows NT名ではありません。完全な名前 <domein\username> を指定してください。 Microsoft SQL Server エラー 15407 ログインIDを Y-05\東京 太郎 としても結果は同じです。ご指導のほどよろしくお願いします。

  • Windows server へのネットワークログイン

    Windows server へのネットワークログイン 現在 サーバー(1台): Windows server 2000 + SQL Server 2000 クライアント(10台): Windows XP SP3 のような環境でPCA社の業務用アプリケーション『商魂・商管』を使用しています。 クライアントで商魂・商管を起動すると自動的にWindowsサーバーとSQLサーバーへ接続/認証が行われ、ログインに成功した場合は使用が可能になります。 ところが最近、クライアントの中の数台が『Administrator』のアカウントで商魂・商管を使用していることが判明しました。そのためサーバー側の『Administrator』アカウントのパスワードが各ユーザー間で共有されています。当然、サーバーに直接『Administrator』としてログインするときと同じパスワードです。パスワードを変更したいのはやまやまなのですが、管理者が『Administrator』パスワードを変更すると、ネットワークで『Administrator』アカウントを使用しているユーザーが商魂・商管を使用できなくなってしまいます。 この状況は最悪なので改善したいのですが・・・ クライアントのローカルアカウントが『Administrator』であっても、サーバーには別ID/パスワードでログインし、問題なく商魂・商管を使用する方法はないでしょうか。ネットワークドライブで可能なことは知っていますが、商魂・商管となると手が出ません。 ユーザー1  クライアントPCのアカウント administrator ← これはこのまま  サーバー上のアカウント administrator ← これをUser1に改めたい ユーザー2  クライアントPCのアカウント administrator ←これはこのまま  サーバー上のアカウント administrator ← これをUser2に改めたい ユーザー3  クライアントPCのアカウント User3 ← これはこのまま  サーバー上のアカウント User3 ← これもこのまま ・ ・ ・ PCA社に問い合わせましたが、アプリケーションの使い方については専門家でも、こういったネットワークの問題についてはわからないこともある、との返答でした。(これはこれで仕方のない話ですが) この問題は解決できないのでしょうか・・・?

  • SQL ServerにWindowsパスワードを入れると接続出来なくなってしまう

    Windows2000ServerとSQLServer2000を使用しています。 端末の台数は20台未満と少ないのですが、今までは、データベースアクセス時に SQLServer認証で使用していました。 クライアントPC起動時に、今まではパスワードも無しだったのですが、 セキュリティ面を考えて、Windowsのパスワードをユーザーにつけることにしました。 ところが、パスワードをつけると、サーバーのデータ―ベースを開こうとすると 「接続出来ませんでした。 SQLState:'28000' SQL Server エラー:18452 〔Microsoft〕〔ODBC SQL Server〕〔SQL Server〕ユーザー'(null)'のログインに失敗しました。 理由:SQL Serverの信頼関係接続に関連付けられていません。」 となって、データ―ベースにアクセス出来なくなってしまいます。 名前付きパイプの信頼関係接続も有効になっているし、マルチプロトコルも無効になっています。 どうしたらデータ―ベース接続時にエラーが出ないように出来るでしょうか?

  • ASPからSQLサーバへの接続について

    しばらくASPから離れておりましたので、ご教授願います。 データベースにSQLサーバ6.5を使っています。 ASPからSQLサーバに接続してデータの登録、変更、削除をしています。 その際に、ASPのソースコードに接続ユーザ名とパスワードを記述しているのですが、 これを記述しないで接続することは可能でしょうか? 可能であれば、その設定方法をお教え願います。 開発環境は以下の通りです。 Windows2000 Prof + IIS + SQL Server6.5

  • SQL Server をサーバー機へ移設

    現在、20名ほどの町工場で、10台ほどのPCと、Server(Windows Server 2008 R2 Standard) をワークグループで接続しています。 Serverは、ファイルサーバとして利用しています。 SQL Server 2005 Express を、私個人のPC(Windows7 Professional)で運用していますが、これをServerへ移設しようとしました。 Server に SQL Server(SQL Server 2008 Express)をインストールし、データベースファイルをコピーし、アッタチして、Server上にデータベースが存在しています。 Server側の Managiment Studio から私個人のPCの SQL Server へは接続できますが、私のPCからServerのSQL Serverへは接続できません。 SQL Server の認証は、SQL Server Authentication を使用してきました。 これを Windows Autehntication に変更するべきでしょうか? それとも、他に簡単な方法がありますか? Windows Authentication の場合、Server 側に、Domain を設定して、User を登録するという流れで良いのでしょうか? 尚、海外の現地企業のため、Windowsは、全て英語版を使用しています。 以上、宜しくお願い致します。

  • SQL server認証に必要な最低限のロールを教えてください。

    こんにちは、いつも参考にさせて頂いております。 SQL Server2008でDBを管理しているのですが、 あるインスタンスへSQL server認証ができません。 sysadmin権限をつけたら認証されたのですが、できるだけ権限は最小にとどめたいです。 そこで質問です。 SQL server認証に必要な最小のサーバー ロールとデータベースのロールは何でしょうか? アドバイスやヒントなど、何かお気づきでしたら教えてください。 どうか、宜しくお願いいたします。 [現在の設定] サーバー ロール:public ユーザーマッピング: 何も設定していません。 設定しようとDBにチェックすると、ユーザーにログインユーザーと同じ名が入り、 既に存在しています、と怒られてしまいます。 ユーザー名に違う名前(例えばdbo)を設定しても同様に怒られました。 なので、ここの設定は何もしないのが正しいのかな?と思っていますが、 根拠はありません・・ [環境] SQL Server2008 Windows Server2008

  • Win7からODBC接続でSQLSerer接続

    いつも参考にさせていただいています。 よろしくお願いします。 クライアント:Windows7 サーバ:WindowsServer2008R2、SQL Server 2008 R2 ACCESS2007で、SQL Server 2008 R2(以下SQLSv)にリンクテーブルを張りたいので、 ODBC接続でSQLSvに接続をしようとしました。 SQLSvは、認証は混在モードでインストールをしました。規定のインスタンスです。 クライアントから、サーバへの共有フォルダを参照できています。 ということは、Windows認証できるはず、と思っていたのですが、 ODBCの設定でWindows認証にすると、エラーになってしまいます。 ↓エラー内容です。 ---------------------------------------- 接続できませんでした。 SQLState:'28000' SQL Server エラー:28456 [Microsoft][ODBC SQLServer Driver][SQL Server]ユーザー'XXXXX\AAA'はログインできませんでした。 ---------------------------------------- XXXXXはサーバのコンピュータ名、AAAはクライアントのアカウントで、サーバにユーザー登録してあります。このユーザーで、サーバの共有フォルダは問題なく参照できています。 Windows認証ができなかったので、SQLSVのIDパスワード認証で行ったところ、エラーにならず、テストも無事に行えたのですが、 ACCESSでリンクテーブルをはる時にもパスワード要求され、 リンクテーブルをはった後にテーブルの内容を見るときにもパスワード要求され、という状態です。 下記の設定を確認しましたが、現象は変わりませんでした。 ・サーバのSQLSvの設定で、  プロパティー内の「接続」で、「このサーバーへのリモート接続を許可する」  が「許可」になっていることを確認。 ・「SQL構成マネージャ」にてクライアントプロトコルのTCP/IPが有効になっていることを確認。 ・「SQL Server Browser」サービスを有効に。 ・サーバ側のファイアウォールの設定で、1433の接続が許可になっていることを確認。 また、ODBCのドライバは、「SQL Server」を使いました。 Native Clientというものもあるようですが、初期状態のWin7には入っておらず、複雑なこともしませんので、普通の「SQL Server」を使いたいと思っています。 できればWindows認証で接続したいのですが、上記の他には何を確認したらよいでしょうか? Windows認証ができなく、SQLSVのIDパスワード認証で行う場合、パスワードを要求されない方法はありますでしょうか? お手数をおかけいたしますが、よろしくお願いいたします。