SQL 데이터베이스와 우리의 응용 프로그램을 하나의 PC에 설치하고 있습니다. Vista에서는 관리자 계정으로 설치해야하지만 일반 사용자 계정은 프로그램을 실행할 수 있지만 필요한 데이터베이스는 액세스 할 수 없습니다.SQL은 PC의 모든 사용자에게 읽기/쓰기 권한을 할당합니다.
내가 필요한 것은 PC의 모든 NT 로그인이 데이터베이스에 액세스 할 수있게하는 간단한 방법입니다.
나는 그것을 해결할 수 있다고 생각했다 : SSMS에서 수동으로 db_datareader/writer 역할을 BUILTIN \ Users에 할당 할 수 있으며 완벽하게 작동한다.
USE [OurDatabase]
GO
EXEC sp_addrolemember N'db_datawriter', N'BUILTIN\Users'
GO
EXEC sp_addrolemember N'db_datareader', N'BUILTIN\Users'
GO
사용자가 역할을 할당받을,하지만 그들은 여전히 데이터베이스에 액세스 할 수 없습니다 내 설치 프로그램 다음을 실행하면
그러나, 그것은 작동하지 않습니다. SSMSE에서 볼 수있는 유일한 차이점은 후자의 경우 새로운 "BUILTIN \ Users"스키마에 대한 소유권도 확보된다는 것입니다.이 스키마는 상황을 망칠 수도 있습니다. 분명히 SSMS는 약간 다른 작업을 수행합니다 ...
누구나 프로그래밍 방식으로이 작업을 수행 할 수있는 방법을 제안 할 수 있습니까?
SSMS에서 "새 사용자"대화 상자의 변경 내용을 스크립팅하도록 요청하면 내 질문에 SQL 스크립트가 생성되므로 프로그래밍 방식으로 어떤 작업을하는지 볼 수 없습니다. 모든 경우에 기본 스키마는 비어있는 (그리고 편집 할 수없는) 것처럼 보입니다. SSMS에서 볼 수있는 유일한 차이점은 프로그래밍 방식으로 추가 된 사용자가 새로운 "BUILTIN \ Users"스키마를 소유한다는 것입니다.이 스키마는 마술처럼 나타났습니다. 따라서 더 나은 기본 스키마를 사용할 수있는 방법을 찾아야 할 것입니다. ? –
솔루션에 대한 전체 설명은 내 대답을 참조하십시오. 그러나 Aaron 's을 받아들이면 해결책을 찾았습니다. –