単一の包含データベースのユーザーを作成する


9

私はMSSQLでの作業はかなり新しく、現時点では2012バージョンを使用しています。私がやろうとしているのは、包含データベースのユーザーを作成し、そのユーザーにそのデータベースへのアクセスのみを許可することです。

準備済みステートメントを使用して、JavaからこのSQLを呼び出します。

回答:


12

データベースで認証するSQL Server 2012に包含ユーザーを作成するは、次の操作を実行できます。

use YourDatabase
go

create user YourContainedUser
with password = 'yourPassword'
go

contained database authenticationまずインスタンスでが有効になっていること、およびデータベースに部分的な包含が設定されていることを確認する必要があります。

exec sp_configure 'contained database authentication', 1
go
reconfigure
go

alter database YourDatabase
set containment = partial
go

上記のコマンドが実行されると、CREATE USER上記のステートメントを使用して包含ユーザーを作成できるようになります。

編集:@AaronBertrandによる素晴らしいコメントとポイント:

また、接続文字列では、資格情報の一部としてデータベース名を必ず使用する必要があります。データベースを指定しない場合、SQL Serverはすべてのデータベースをチェックして、意図したものを特定しようとしません。また、制限が明確でない場合、コードはクロスデータベースクエリを実行できません。


助けてくれてありがとう、コメントするべきことの1つは、Java JDBCステートメントでこれをやろうとしていたことです。PreparedStamentsを使用してそれを行うことができませんでした。JDBCはこれに不満を抱いていました。したがって、連結文字列をステートメントとして使用しました。
imellan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.