プロが教えるわが家の防犯対策術!

 VBからODBCに登録するプログラムを作っています。
 API関数のSQLConfigDataSourceを使っています。
 ヘルプやネットで調べて、作成することはできました。
 が、パスワードとユーザ名が登録していない状況での
 ことです。
 ここにもいくつかODBCに接続に関しての投稿を見ました。
 パスワードとユーザ名指定しているサンプルやURL
 なんかもあったのでいってみて、実際に自分のプログラムでも
 試したのですがどうもうまくいきません。

 SQLConfigDataSourceの引数のひとつである、ODBC_REMOVE_SYS_DSNと
 ODBC_ADD_SYS_DSNを使いました。
 ODBC_REMOVE_DSNとODBC_ADD_SYSを先に使ってみましたが
 こちらもできませんでした。
 なぜ"SYS"がつくものとつかないものふたつあるのでしょうか?
 先に質問のパスワードとユーザー名指定して登録できないのは、
 これと関係あるのでしょうか?
 
 全くの初心者で申し訳ありませんが、よろしくお願いします。

A 回答 (5件)

SQLさばについて



データベースのプロパティのセキュリティタブに認証方式がある
混合モード/Windows認証
これらはDBをSQLさばをインストールするときに選択を求められる
接続先のDBをおいているマシンにユーザ権限があって、しかもパスワードが同じなら、Windows認証が働いて、入れてしまう。

SQLさばは、誉れ高いMS商品
初期設定が初心者向きで扱い易い
しかしちょっとつつけば、すーぱゆーざ権限で入れるというセキュリティの弱さダントツを秘めた諸刃の剣


これを回避するにはWin認証を行わない。
ドメイン環境でActiveDirectoryを導入。
などのデフォルト設定以外の事をしないとだめズラ
    • good
    • 0
この回答へのお礼

 勉強になりました。
 現状では、パスワードとユーザ名は指定しないで追加することで進みました。
 最後まで質問にお答えくださいましてありがとうございました。
 

お礼日時:2003/04/16 19:03

現状ソースの公開求む


使用しているDBは何?

>Administratorででてきいました。
とは、「何が」できたの?
追加?それともログイン?

もしSQLさばを使っているなら、
ログイン認証はWindows認証?それとも混合モード?それともSQLで割り与えたユーザのみ?

この回答への補足

 使用するAPI関数
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
(ByValhwndParent As Long, _
ByVal fRequest As Long, _
ByVal lpszDriver As String, _
ByVal lpszAttributes As String)As Long

Private Const ODBC_ADD_SYS_DSN = 4
Private Const ODBC_REMOVE_SYS_DSN = 6

---------------------------------------------------------------------------
Private Function ODBCData()
Dim SqlODBC As Boolean
Dim Driver As String
Dim Attributes As String

Driver = "SQL Server"

Attributes = "DSN=データソース名"+ vbNullChar + _
"SERVER=サーバー名" + vbNullChar + __
"UID=ユーザ名" + vbNullChar + _
"PWD=パスワード+ vbNullChar + _
"DATABASE=データベース名" + vbNullChar

sqlODBC = SQLConfigDataSource(0, ODBC_REMOVE_SYS_DSN, Driver, Attributes)
wiRCode = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, Driver, Attributes)

End Function

 こんな感じに書きました。
 一応ネットでSQLConfigDataSourceの説明が載っているページを見てまねしました。

 あと、ログイン認証は?とのことですが、すみません。わかりません。
 もしかしてそれが重要だったりするんですか?

補足日時:2003/04/16 14:12
    • good
    • 0

改定:DNS → DSN

    • good
    • 0

よく読むベシ




SYSがついたらシステムDNSに登録
そうでなければユーザDNS

ついでに言うなれば、システムDNSは、ログイン時の権限によっては操作不能

この回答への補足

 ありがとうございました。
 何度も同じページを読んでいましたが、読み飛ばしていたようです。すみませんでした。

 SYSがつくものとつかないものの違いは分かりました。
 
 では、なぜユーザー名とパスワードをつけると追加されないのでしょうか?
 ちなみに、追加はされますがユーザ名とパスワードを指定していないので、Administratorででてきいました。

補足日時:2003/04/16 11:16
    • good
    • 0

この回答への補足

 すみません。
 そのページはすでに読みました。
 検索サイトでSQLConfigDataSourceにひっかがるページはほとんど行ったんですが、
 まだ分からないので、ここに投稿させてもらいました・・・。

補足日時:2003/04/16 09:57
    • good
    • 0

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