2012-02-15 18 views
0

写真を参照してください。私は次のコードを使用してDBを添付しています。SQLサーバーデータベースの種類

Dim conn As New SqlConnection("Server=MyHomeServer\SQLExpress;Database=master;Integrated Security=SSPI") 
    Dim cmd As New SqlCommand("", conn) 
    cmd.CommandText = "CREATE DATABASE dbNoPWD ON (FILENAME = 'd:\dbNoPWD.mdf'), (FILENAME = 'd:\dbNoPWD_log.ldf') FOR ATTACH" 
    conn.Open() 
    cmd.ExecuteNonQuery() 
    cmd.Dispose() 
    conn.Dispose() 

ユーザー名とパスワードを入力しないようにしてください。私は上記のコードを実行して、SSMSをチェックすると、私は私がDBが役割で確認されなかった添付

た(PLS。写真をご覧ください。)
enter image description here これに伴う問題は、私のネットワークコンピュータは、このDBにアクセスすることはできませんです。上記のようなコードを実行したいのですが(saパスワードなし)、私のネットワークコンピュータが私のユーザがSSMSの設定に関与することなくDBにアクセスできるようにしたいのです。

答えて

0

Windows認証を使用しているデータベースを作成するときに接続文字列に入力します。したがって、ActiveDirectorアカウントがJOEの場合、dbNoPWDデータベースの所有者はSAではなくJOEになります。そのため、あなたのスクリーンショットには、dbNoPWDへのマッピングがないSAが表示されます。

SAのマッピングは、sysadminサーバーの役割に属していない限り、他のSqlServerログインがデータベースにアクセスできるかどうかとは関係ありません。各SQLServerログインには、新しいデータベースへの独自のマッピングが必要です。そうしないと、SQLServerログインを使用できなくなります。

あなたの問題を解決しましょう。新しいデータベースへの読み取り/書き込みアクセス権をユーザーに与えたい場合は、データベース作成ステートメントの後にTSQLを追加して、ユーザーを新しいデータベースにマップします。このような何か:

use dbNoPWD 
go 
exec sp_addrolemember db_datareader, SQLLOGINNAME 
go 
exec sp_addrolemember db_datawriter, SQLLOGINNAME 
go 

あなたは多くのユーザーにそれが全体のウィンドウ・グループのログインを作成し、ちょうどあなたのデータベースにグループ全体のマッピングを割り当てるする簡単な方法を持っている場合。