2009-06-30 4 views
0

SQL Server 2005で対称キーを作成し、それをsaおよびアプリケーションユーザーアカウントだけに制限しようとしています。他のすべてのアカウントは、開こうとするとエラーになります。2人のユーザーに対称キーアクセスを許可

私はそれをどのように作成しています。私はこの質問の目的のために名前を変更しました。

CREATE CERTIFICATE My_Certificate 
    WITH SUBJECT = 'My Cert Subject'; 
GO 

CREATE SYMMETRIC KEY My_Key 
    WITH ALGORITHM = AES_256 
    ENCRYPTION BY CERTIFICATE My_Certificate; 
GO 

この時点で、私の許可を与えていないにもかかわらず、私のアプリユーザーがキーを開くことができます。 [公開]グループを拒否した場合は、あとでアプリユーザーに直接許可してもキーを開くことができません。プロダクションにどのユーザーが存在するのかわからないので、各ユーザーを個別に拒否したくありません。私はまた、作成された新しいユーザーがこのキーにアクセスしないようにしたい。私が使用している

DENYとGRANTの行は、次のとおりです。

キーを所有している
DENY VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [public] 
GRANT VIEW DEFINITION ON SYMMETRIC KEY :: My_Key TO [AppUser] 

答えて

1

?あなたのアプリはどのようにキーにアクセスしますか?万一、所有権のチェーン化に影響がありますか? AppUserはどのグループと役割に属していますか?

AppUser(キーが作成された直後)で実行された場合、どのようなアクセス権がfn_my_permissions('My_Key', 'SYMMETRIC KEY')に返されますか?

アップデート:fn_my_permissions固定タイプ

+0

私は自分のアカウントでキーを作成しました。ストアドプロシージャの開始時にキーを開き、ここに示すように暗号化または復号化を行います。http://msdn.microsoft.com/en-us/library/ms179331.aspx AppUserはパブリックサーバーの役割に属していますデータベース自体のdb_owner、publicです。 fn_my_permissions()は結果を返しません。 – AndyMcKenna

+0

AppUserはdb_ownerですか?それは彼にDBのすべてへのアクセスを許可するでしょうか? –

+0

うん、私は彼にアクセスしてもらいたい。私は他の人をすべてロックアウトする必要があります。 AppUserとしてキーを作成し、自分の個人アカウントにアクセスできるかどうかを確認します。私もdb_ownerではないことを確認します。 – AndyMcKenna

関連する問題