• ベストアンサー

Windows統合認証とSQL Server認証の違いについて

SQL Server(MSDE)で例えば既定のインスタンスに 2つのDBを作るとして、それぞれをアプリAが使う DB1とアプリ2が使うDB2とします。 DB1の方はWindows統合認証でデーターを書き込んで DB2の方はSQL Server認証でデーターを書き込む場合 認証方式の違いでお互いのDB上のデーターが破損したり 整合性が取れなくなるということはあるのでしょうか? あるいは認証方式は統一した方が良いのでしょうか? ものすごく初歩的なことかもしれませんが、どなたか ご助言頂ければ嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

どちらも認証のことだけなので、それによるデータ破損は考えられません。 認証方法導入について(参考までの個人的意見です) ※Windows統合認証 ドメインでのネットワーク構成がなされている環境開発に適しています。 開発要員が増えたり減ったりするのであれば、端末に設定しないでも、ドメインサーバでDBアクセスと権限が管理ができちゃいます。小さなプロジェクトなら、そんな事は意識しなくてもよいと思いますが、大きなプロジェクトなら、導入前テスト用に複数のテスト用SQLサーバが存在し、その中にチーム別のDBを持っている場合があります。そういう時こそ、威力を発揮すると思います。 しっかり管理しているのであれば、実環境での導入も不可能では無いですが、もし最高権限を持った人がPCをつけっぱなしで席を離れたら、データ操作をされる恐れがあるので、あまり運用では聞きません。 ※SQL Server認証 もちろんID/PASSを知っていないとログインできません。 小まめにPASSを変更すると、関係者に周知しなければならないので、開発では向かないですが、周知する必要の無い実環境には適しています。 ただ、「実環境がSQL Server認証だから、開発もSQL Server認証で」というプロジェクトもあるとは思いますが、それはそれで問題は全然ありません。 プロジェクト管理者がPCをつけっぱなしで席を離れることがあっても、DB関係のアプリケーションさえ立ち上げていなければ、直接の改ざんは不可能です。(Windows統合認証よりは全然マシです)

kanta069
質問者

お礼

ありがとうございます。 認証だけでデーターがおかしくなることって 冷静に考えるとないですよね・・・。 というのはとあるソフト会社のサポートで認証方式の 違いでデーターが破損するかもみたいなことを言われ 自分でも確証が持てず混乱していたものですら・・・。

関連するQ&A

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

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

  • SQL ServerへのODBC接続

    Excelの「外部データの取り込み」により、SQLサーバー内のデータベースよりデータを取得しようとしています。 新しいデータソースの登録のステップで、データソースの種類「Microsoft SQL Server」を選択して、次のポップアップウィンドウでサーバー名と認証IDを入力。そうすると接続可能なDBが「使用するデータが含まれているデータベースを選択」のテキストの下のドロップダウンリスト中に現れるのですが、サーバー側で(local)の中に登録されているDBしか現れず、ユーザ側で定義されたインスタンス(と呼んでいいんでしたっけ?)の中のDBのテーブルを読みに行くことができません。 どのようにすれば、ユーザ側で定義されたインスタンスの中のDBのテーブルを読みに行くことができるようになるのか、ご教示いただけると有り難く思います。宜しくお願い致します。

  • 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に登録されたユーザー名/パスワードだけで接続するには、どうしたらよいのでしょうか? よくわかっていないので、よくわからない質問になってしまっていると思いますが、よろしくお願いします。 質問の意味がわからないところは補足しますので、ご指摘ください。

  • MSDEから学ぶSQL Server 2000 入門書について

    SQL Server (2000)を書籍、インターネットを 利用して独学で学ぼうとしています。 まずプラットフォームとしてはMSDEで学ぶよう 課題が与えられました。 そこで、MSDEを学ぶ入門書で、お使いになって お勧めのものをご紹介いただけませんでしょうか。 エクセルは使っていますが、これまでにアクセス、 各種DBは使ったことがありません。 よろしくお願いします。

  • windows7 からsql server2000

    現在、windowsXP 上でvb6で作成したアプリを使ってます。 DBはwindows2003上のsql server 2000です。 今回、windows7を購入して、 同じように(windows7上のvb6からwindows2003上のsqlserver2000)動かしたところ、 DBへのアクセスがやたらと遅くなってしまいました(10倍ぐらい)。 原因が特定できず、困っています。 宜しくお願いします。

  • SQL serverの勉強をするにあたって

    SQL serverの勉強をしたいと思ってます。 無料のSQL serverではmsde2000とSQL Server 2005 Express Editionがあるようですが、どちらを入れたほうがいいのかわかりません。 勉強用にはどちらがお勧めでしょうか? また、この2つに大きな違いなどがあれば教えていただきたいです。 よろしくお願いします。

  • MSDE2000SP4のデータベースをMSSQLサーバーに移動

    MSDE2000SP4で設定されているDBを、まるごとMSSQLサーバー2000に移動したいのですが、どのようにしたらできますか? また、MSDEのDBをosqlコマンドでバックアップして、そのバックアップデータをSQLサーバーにインポートする事は可能でしょうか? ご助言お願致します。

  • windows統合認証とform認証の併用

    こんばんは。 現在windows server 2008 R2 SE上で動作する.netのアプリを開発中です。  ※windows server 2003環境からwindows server 2008環境に移行。アプリも改修 お客様の要件として、下記の内容があります。 ------------------------------------------------------- (1)ドメインユーザがアクセスしてきた場合はwindows統合認証でシームレスにログインさせる。 (2)ドメイン外ユーザ(ローカルPCにログインしているユーザ)がアクセスしてきた場合は   windows統合認証失敗時に表示される認証ダイアログを表示せずに、別に準備したログイン   画面を表示し、そこにユーザID/パスワードを入力してログインさせる。 ------------------------------------------------------- windows統合認証に失敗した場合必ず認証ダイアログが表示されてしまうので(2)は無理なのでは とも思ったのですが、客先の現行アプリでは確かに実現されています。 web.configの設定等で何とかなるものなのでしょうか? もしくは、イレギュラーな対処法でもよいのでアイデアをいただけると幸いです。 ちなみにIISの  windows統合認証 ON  匿名認証 ON の状態で、User.Identity.Nameを取得し、  値が入っていればドメインユーザ  値が空文字であればろーかるPCユーザ と判断しようと考ええたのですが、匿名認証がONの場合はUser.Identity.Nameが空になるようで、、 よろしくお願いします。

  • SQL Server へのデータ追加について

    現在a、b、cの店舗でそれぞれAccessをDBとして活用しているのですが、それとは別に 3店舗分のデータを一つにまとめた統合用DBとしてSQL Serverを利用したいと考えています。その際、それぞれ各店舗分のデータをSQL Serverへと追加していきたいのですが、どういった処理が最適で効率が良いのか分からず困っています。 希望する処理的には何らかのexeファイルを作成し、そのexeファイルを叩くとAccessからデータを吸い上げ、SQL Serverへとデータを追加するということを行いたいです。 私が考えられる処理としては以下の2点でした。 1、Accessから吸い上げたデータをストアドを使い、データを追加していく。 2、Accessから吸い上げたデータをCSVに変換し外部ファイルとし、ローダーを使用して   データを追加する。 それぞれの店舗データが3万件程あります。 なるべくDBに負担をかけないで以上の様な事を行いたいです。 DBまわりにお詳しい方、ご教授よろしくお願い致します。

  • SQL SERVER 2005 でデータベース名を変更

    初心者です。よろしくお願いします。失敗してしまい非常に困ってます。 SQL SERVER 2005です。 SQL SERVER認証でローカルサーバーに接続しています。 そのローカルサーバーにAという名前のデータベースがあったのですが 間違えて名前をBに変えてしまいました。 そしたらSQL SERVERに接続出来なくなりました。 Aという名前で接続してたときと同じログイン名とパスワードを使用したら localhostに接続出来ません。 ユーダーの既定のデータベースを開けません。 ログインに失敗しました。 ユーザー"(ユーザー名です)" はログイン出来ませんでした。 microsoft SQL server エラー4064 というエラーが出ました。 どうにかして元のAというデータベース名に戻したいです。 http://support.microsoft.com/kb/307864/ja を参考にコマンドプロンプトで下記の作業を行いました。   SQL Server ログインで SQL Server 認証を使用してインスタンスに接続している場合は、コマンド プロンプトで次の行を入力し、Enter キーを押します。 sqlcmd -S InstanceName -d master -U SQLLogin -P Password 注 : InstanceName には、接続先の SQL Server 2005 インスタンスの名前が入ります。SQLLogin には、既定のデータベースが削除されている SQL Server ログイン名が入ります。Password には、SQL Server ログインのパスワードが入ります。 3. sqlcmd プロンプトで次の行を入力し、Enter キーを押します。 ALTER LOGIN SQLLogin WITH DEFAULT_DATABASE = AvailDBName 注 : AvailDBName には、SQL Server ログインでアクセスできる、そのインスタンス内の既存のデータベースの名前が入ります。 4. sqlcmd プロンプトで GO と入力し、Enter キーを押します。 これを実行してもBというデータベースに接続(?)は出来ましたが 名前をもとに戻すことが出来ません。 いくら調べても分からないので(調べ方が悪いのかも知れませんが・・) どなたか教えていただけないでしょうか。よろしくお願いします。