2013-10-04 2 views
0

동일한 SQL 서버에서 다른 데이터베이스의 개체에 한 데이터베이스 액세스 권한을 허용해야하는 시나리오가 있습니다.2 데이터베이스의 SQL 사용자 권한

SQL Server 설치 :
SQL Server 2008 Express 인스턴스를 실행하고 있습니다. 해당 인스턴스 내에서

나는 다음과 같은 한 :

2 데이터베이스 :
DATABASE1
DATABASE2

2 로그인 :
ADMIN1
ADMIN2

DATABASE1 사용자를 가지고 (USER1) ADMIN1에 생성 한 선택은, UPDATE, INSERT 그랜트가 DATABASE1

저장 프로 시저에서 실행 삭제 권한을 가지고

DATABASE2가 ADMIN2에 생성 한 사용자 (USER2)를 가지며, SELECT, UPDATE 권한을 가지고 DELETE, INSERT 및 GRANT는 DATABASE2에 저장 프로 시저에서 실행

질문 :
내가 필요로하는 것은 내가 시도

DATABASE2

의 절차를 테이블에 권한을 실행하고 저장/'USER1'SELECT 수 있도록하는 것입니다 몇 가지 게시물에서 SQL 스 니펫을 몇 개 만들었지 만 SQL을 작성하는 방법을 모릅니다. 사용자 및 로그인을 Management Studio에서 마우스 오른쪽 단추로 클릭하여 사용 권한에 대한 확인란의 체크 표시를 수동으로 시도했지만 내 스크립트에서 SQL을 실행해야합니다. 내 질문에 대한

이유 는
나는 관련이 DATABASE1 및 DATABASE2의 테이블을 가지고 있지만 분명히 우리는 다른 데이터베이스에서 외래 키 제약 조건을 만들 캔트. 두 테이블 간의 관계를 처리하는 가장 좋은 방법은 DATABASE2에있는 관련 테이블을 쿼리하여 결과를 반환하는 DATABASE1의 저장 프로 시저를 만드는 것입니다.

위와 같은 시나리오와 일치하는 검색을 통해 예제를 찾을 수 없으므로 사과 할 수 없습니다. 추가 정보가 있으면 알려주십시오.

많은 감사 케빈

+0

그냥 "교차하는 데이터베이스"를 보았습니다. 아이디어 1. Database2에서 Database2를 참조하는 뷰를 생성합니다. 나는 새로 정의 된 스키마 이름 아래에 넣을 것이다. 그래서 ... 데이터베이스 1을 쿼리하면 (db 2의 데이터를 볼 수 있음), "Select A, B, C from OtherDatabasesSchema.vwCounty ........ Idea2, db1의 코드에서 동의어를 사용하고 동의어는 데이터베이스 2의 개체를 가리킬 수 있습니다. – granadaCoder

답변

0

만큼 사용자가 인스턴스 수준에서 정의 된 바와 같이, 당신은 그들이 각 데이터베이스에 필요한 어떤 권한을 부여 할 수 있습니다. 마스터 아래에 사용자를 만든 다음 특정 데이터베이스에 필요한 권한을 부여하는 각 데이터베이스의 사용자로 추가하십시오. 자세한 내용 편집 한

(주석 기준) :

먼저, 데이터베이스 로그인을 만들어야합니다. 이 로그인은 인스턴스의 하나 이상의 데이터베이스에 사용자로 추가 될 수있는 로그인입니다.(SQL 구문 포함) 여기

세부 사항 : http://technet.microsoft.com/en-us/library/ms189751.aspx

둘째, 데이터베이스 (Database1, DATABASE2 등)의 규정에 사용자가 필요합니다. 이러한 사용자를 설치 한 각 제품 데이터베이스에 동일하게 추가해야합니다. 사용자가있는 한 인스턴스의 여러 DB를 통해 쿼리 할 수 ​​있습니다. (SQL 포함) 여기

세부 사항 : http://technet.microsoft.com/en-us/library/aa337545.aspx

행운을 빕니다!

+0

빠른 응답을 주셔서 감사합니다 MystikSpiral. DATABASE1이 먼저 생성되고 DATABASE2는 다른 제품 용이며 Product 2를 구입 한 경우에만 생성됩니다 .DATABASE1은 이미 번호가 있습니다 이미 사용자가 생성되어 있기 때문에 사용자가 이미 데이터베이스에 할당되어있는 경우 master db 아래에서 사용자를 다시 만들 필요없이 현재 존재하는 권한을 편집 할 수 있습니까? – Kev

+0

당신은 데이터베이스의 존재를 언급하지 않았는데, 상당히 변화를주었습니다. 각 데이터베이스의 설정을 제어 할 수 있습니까? 그렇다면 DB를 배포하기 전에 올바른 권한으로 구성하십시오. – MystikSpiral

+0

In 본질적으로 DATABASE3과 DATABASE4가 미래에 만들어 질 수 있습니다. 즉, 모든 데이터베이스가 동시에 생성되지 않으므로 서로에 대해 알지 못합니다. 그래서 나는 다른 데이터베이스를 읽을 수 있도록 'Adapt'할 수 있도록 DATABASE1에 USER1이 필요합니다. 문제는 USER1이 DATABASE1 안에 존재한다는 것입니다. 희망은 좀 더 통찰력을 제공합니다. 덕분에 – Kev