• 締切済み

SQL Serverについて

ASP部かSQL部かどちらで質問すればいいのかわからなかったのですが、系統的にこちらかと思い質問させていただきます。 ASPを使用しましてSQL Serverに接続しているのですが、 接続するUser,Passwordは通常接続するのに多数のユーザが使用する際は 個々にUser,Passwordを発行してクエリー作業を実行します。 それはそれぞれの干渉などのデータ損失などの問題を解消するためのようですが、 ASPの場合はサーバで処理後「結果」をクライアントへ送信する。というものですよね? つまり処理をするユーザはサーバのみとの考え方になると思ったのですが、 それの場合はSQL Server のUser,Passwordを個々に発行する必要はないのでしょうか? ご教授をよろしくお願いします。

  • teas
  • お礼率33% (36/107)

みんなの回答

  • 9arabi
  • ベストアンサー率32% (140/433)
回答No.3

質問者さんの意図があまり見えてこないのですが、 >と、言うことはわざわざSQL Serverを立てなくてもMSDEで十分と判断してよろしいのでしょうか? >> WebサーバとSQLServerが同じマシンに同居する小規模なシステムを前提とします。 >ということは小規模以上の場合はどうなのでしょうか?ASPは向いていないとか・・・ どういう規模で作られておられるのでしょうか? 小さい会社の社内システムくらいならMSDEで十分でしょう。 大会社のサイトでもASPは使ってますよ。Microsoftとか。 基本的にはASPを実行するアプリ1つに対して、UserとPasswordがあればよいのではないでしょうか。 「管理者、一般ユーザー、閲覧者といった差別があるにしてもWebアプリ側で切り分ければよい。」というNo.2さんの意見には賛成です。 ですが、No.2さんのいう「saで接続」は危険です。 何か別のUserを用意して、きちんと実行権限等を決めてやるべきだと思います。 何か穴があった場合、Userやパスワードが外部に漏れてしまうかもしれないですから。

teas
質問者

お礼

ご返答ありがとうございます。 とても参考になりました。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

私の考えを書きますね。 WebサーバとSQLServerが同じマシンに同居する小規模なシステムを前提とします。 > それの場合はSQL Server のUser,Passwordを個々に発行する必要はないのでしょうか? むしろやっては行けないと思います。 一般ユーザーに直接DBを触る手段を与えてはいけません。 SQLServerの外部接続を拒否します。 DBを直接触る手段はサーバのコンソールかターミナルサービスに限定します。 >ASPの場合はサーバで処理後「結果」をクライアントへ送信する。というものですよね? >つまり処理をするユーザはサーバのみとの考え方になると思ったのですが、 なので、管理者権限のアカウント一本で接続します。(saで充分) 管理者、一般ユーザー、閲覧者といった差別があるにしてもWebアプリ側で切り分ければよい。

teas
質問者

お礼

ご返答ありがとうございます。 と、言うことはわざわざSQL Serverを立てなくてもMSDEで十分と判断してよろしいのでしょうか? > WebサーバとSQLServerが同じマシンに同居する小規模なシステムを前提とします。 ということは小規模以上の場合はどうなのでしょうか?ASPは向いていないとか・・・

  • ept63
  • ベストアンサー率21% (54/247)
回答No.1

私の場合はここにはユーザを作成していません。 権限を分けたユーザを作成して、 ASPのログイン者によってSQL分を切り替えています。 管理者権限のログイン 使用権限のログイン 閲覧者のログイン などでSQLのユーザを作っています。 セキュリティー上もっといい方法があるかも知れませんし、ユーザを分ける必要も無いのかも知れません。

teas
質問者

お礼

早急なご返事ありがとうございます。 ept63様のおっしゃられていることから考えると、複数のユーザを相手に公開するASPとしては問題ないのでしょうか?(速度的な問題として) SQL Serverと言えばユーザ数によって値段が変わりますよね?その辺の問題だとかも大丈夫なのでしょうか? 中規模(アクセスユーザが特定、随時使用するアプリケーション20ユーザまでの顧客管理システム)的な場合は問題なく動くのでしょうか?もしその程度の開発をされている方がいらっしゃいましたらご返事をお願いします。

関連するQ&A

  • SQLサーバーについて

    アクセスユーザーです。 データベースを操作するならアクセスよりSQLサーバーの方が良いと聞いたのですが SQLサーバーのイメージがいまいちわかりません。 アクセスは、 ・テーブル ・クエリ ・フォーム ・レポート ・マクロ ・VBA がありますが、 SQLサーバーは、テーブルとクエリしかなくて、 テーブルの置き場として使うソフト。と言う認識であってますか?

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

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

  • SQLサーバに対してのバッチファイルの実行

    はじめまして、 よろしくお願いいたします。 <やりたいこと> 複数のSQLサーバーにログインして SQLスクリプトを流すバッチファイルを作成したい。 サーバー名は全て異なるが、 ユーザー名、パスワードは全て同じもので ログインが可能。 <質問> 上記のことをやりたいのですが、 イメージがつかめず、困っております。 ・コマンドラインからSQLサーバーに接続できるのか?(コマンドラインからEnterpriseManagerとかクエリアナライザを起動しないと無理?) ・接続する処理については、.sqlファイルに記述することは可能なのでしょうか? 以上、お気づきになられた方がおられましたら、 よろしくお願いいたします。

  • SQL Serverへ

    VBでSQL Server2000にアクセスしています。 先日質問させていただいた延長上の質問なのですが、サーバへのアクセスはIPアドレスでないとできないのでしょうか?たとえばドメイン名など○○.co.jp cn.ConnectionString = "Provider=SQLOLEDB;Network address=○○;" & "initial catalog=KecDataBase;User ID=○○;Password=○○" のように接続していました。address=○○;の部分を変更すればできるのかと思うのですが・・・ 知っておられる方いられましたらよろしくお願いします。

  • SQLサーバーへの接続が どうしてもウマくいきません

    SQLサーバーを始めたばかり です。 ASPで SQLサーバーのデータを表示しようとしています。 環境: WinXP (Pro)     IIS設定済み     SQL Server 2005 Express Edition 近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。 サーバーが現用機なので 自PCで動作確認してからと思っています。 色々ネットを調べて まず接続しようとしましたが そこでつまづいています。 この方法以外も沢山試しましたが全てうまく行きません。 2005 ExpressでDBとテスト用のテーブルが作成してあります。 そのデータを読み出せれば 第一段階とトライしますが、 IEから接続にいくと「objCon.Open」がエラーになってしまいます。 ASPファイルの内容は 以下です なお DB名は 「PC名¥SQLEXPRESS」といれています よろしく お願いします ---------------------------------------------------- <%@ LANGUAGE="VBScript" %> <% option explicit %> <% Dim objCon ' DB接続コネクション Dim objRS ' DB結果レコードセット Dim sql ' SQL文 Dim errflg ' エラーフラグ 'DataSource名 Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます Const IC = "DB名"      'ユーザ名 Const User = "sa" 'パスワード Const Pwd = "sa" Set objCon = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Recordset") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "User ID=" & User & ";" & _ "Password=" & Pwd & ";" & _ "Data Source=" & DS & ";" & _ "Initial Catalog=" & IC objCon.Open sql = "select * from Aテーブル" objRS.Open sql,objCon,adOpenStatic,adLockReadOnly %> レコード件数 <%=objRS.RecordCount%> <% ' DBclose objCon.Close() Set objCon = Nothing objRS.Close() Set objRS = Nothing %>

  • 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というデータベースに接続(?)は出来ましたが 名前をもとに戻すことが出来ません。 いくら調べても分からないので(調べ方が悪いのかも知れませんが・・) どなたか教えていただけないでしょうか。よろしくお願いします。

  • SQLサーバーへの接続に 接続したいのですが・・・

    質問する場所が 違ったかもしれないので 再度質問させていただきます。 SQLサーバーを始めたばかり です。 ASPで SQLサーバーのデータを表示しようとしています。 環境: WinXP (Pro)     IIS設定済み     SQL Server 2005 Express Edition 近くに2003サーバーがあるので 最終的にはそちらで動作させる予定です。 サーバーが現用機なので 自PCで動作確認してからと思っています。 色々ネットや本を調べて まず接続しようとしましたが そこでつまづいています。 この方法以外も沢山試しましたが全てうまく行きません。 2005 ExpressでDBとテスト用のテーブルが作成してあります。 そのデータを読み出せれば 第一段階とトライしますが、 IEから接続にいくと「objCon.Open」がエラーになってしまいます。 ASPファイルの内容は 以下です なお DB名は 「作成した名前」と入れています よろしく お願いします ---------------------------------------------------- <%@ LANGUAGE="VBScript" %> <% option explicit %> <% Dim objCon ' DB接続コネクション Dim objRS ' DB結果レコードセット Dim sql ' SQL文 Dim errflg ' エラーフラグ 'DataSource名 Const DS = "111.111.0.1" ←IPアドレス。正しいものをいれてます Const IC = "DB名"      'ユーザ名 Const User = "sa" 'パスワード Const Pwd = "sa" Set objCon = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.Recordset") objCon.ConnectionString = "Provider=SQLOLEDB;" & _ "User ID=" & User & ";" & _ "Password=" & Pwd & ";" & _ "Data Source=" & DS & ";" & _ "Initial Catalog=" & IC objCon.Open'ここで エラーになります sql = "select * from Aテーブル" objRS.Open sql,objCon,adOpenStatic,adLockReadOnly %> レコード件数 <%=objRS.RecordCount%> <% ' DBclose objCon.Close() Set objCon = Nothing objRS.Close() Set objRS = Nothing %> なお エラー内容は 以下です ----------------------------- HTTP 500.100 - 内部サーバー エラー - ASP エラー インターネット インフォメーション サービス エラー タイプ Microsoft OLE DB Provider for SQL Server (0x80004005) [DBNETLIB][ConnectionOpen (Invalid Instance()).]接続が正しくありません ----------------------------- また  1.IPアドレスは Const DS = "127.0.0.1"でも 同様なエラーです 2.表示できるASPファイルを置き、他のPCから 表示できる環境です

  • SQLサーバーを入れるにあたって

    基本的なことですみません。 SQLサーバーを事務所にいれようとおもうのですが、 ・MySQLサーバーとWindouwsSQLサーバーの違いとは? ・SQLサーバーを入れることでODBC接続をしてACCESSや、BIツールと接続できる (複雑な処理がやりやすくなる)ようですが、導入する際に特別な技術がいるのでしょうか? ・SQLサーバーでデータクレンジングができる?とは? ・会社の共有フォルダーにデータをいれるのと、SQLサーバーにデータを取り込む手順の違いは? 上記、お教えいただけると大変たすかります。 (批判やひやかしはご容赦いただければとおもいます)

  • ASP(海外)サーバでMDBファイルのパスを設定するには?

    brinksterというASPサーバを使用しています。 MS ACCESS Databaseもサポートしているのですが、 PWSのODBCマネージャに相当する部分がありません。 ASPファイルを実行すると、『プログラムで指定したMDBファイルが見つかりません』というエラーが出ます。 Database Managerというページが、あるにはあるのですが、ACCESS DB Passwordや、SQL Queryを書き込むように求められます。SQL Queryとは何ですか?何を書けばよいのでしょうか? ちなみに、実行させたASPファイルは、私の自宅のPWSでは、問題無く動作するのですが…。

  • SQL Server2008でリンクサーバからテーブルを作成する方法

    SQL Server2008で、リンクサーバからテーブル(属性も含み)作成を行うには どのようにするのでしょうか (リンクサーバの設定は行えましたが、SQL Serverの知識はほとんどありません・・・) into テーブル名 FROM リンクサーバ(テーブル) というので テーブル属性も含めてテーブルを作成できるとの記事はあったの ですが、クエリで実行してもエラーとなってしまいます。 SQL Server2008でSQLを発行するには特別な指定が必要なのでしょうか? (SQLを発行する場所が間違っているのかもですが) 初歩的な質問で申し訳ございません、よろしくお願いします

専門家に質問してみよう