2009-06-30 10 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 

이 시점에서 권한을 부여하지 않았더라도 키는 내 앱 사용자가 열 수 있습니다. [공개] 그룹을 비우는 경우 나중에 앱 사용자에게 직접 부여한 후에도 키를 열 수 없습니다. 생산에 어떤 사용자가 있는지 모르기 때문에 각 사용자를 개별적으로 거부하고 싶지 않습니다. 또한 생성 된 새 사용자가이 키에 액세스하지 못하도록해야합니다.

(가) 부인하고 내가 사용 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

관련 문제