SQL Server 2012에서 Azure로 데이터베이스를 이동했습니다. 사용자를 사용하고 싶지 않아 사용자 master
를 만들었습니다 test
. 이것은 Azure에서 데이터베이스 XXX에 대해 수행 한 작업입니다.
create user test from login test with default_schema=[dbo]
exec sp_addrolemember 'db_owner','test'
내가 확인한 결과 내가 관심있는 데이터베이스 개체는 모두 schema에 dbo
있습니다. 테이블 Users
은 스키마에 dbo
있습니다.
내 웹 프로젝트의 연결 문자열 test
은 로그인으로 사용됩니다. 다음과 같은 오류 메시지가 생성됩니다.
The SELECT permission was denied on the object 'Users', database 'XXX', schema 'dbo'
오류 메시지는 무엇을 의미하며 사용자 test
가 데이터베이스 XXX에 액세스 할 수 있도록하려면 어떻게해야 합니까?
답변
문제는 사용자가 권한 을 거부하는 것 입니다. 이 오류는 생성 한 사용자에게 데이터베이스의 테이블에 액세스 할 수있는 충분한 권한이 없을 때 발생합니다. 원하는 것을 얻으려면 사용자에게 권한을 부여하십시오.
해당 데이터베이스의 테이블에 대한 SELECT, INSERT, UPDATE 및 DELETE와 같은 사용자 별 권한을 부여 합니다.
답변
답변
특정 테이블에 대한 선택 권한을 부여하는 구문 :
USE YourDB;
GRANT SELECT ON dbo.functionName TO UserName;
데이터베이스의 모든 테이블에 대한 선택 권한을 부여하려면 다음을 수행하십시오.
USE YourDB;
GRANT SELECT TO UserName;
답변
이것이 제가 직면했을 때 문제를 해결할 수 있었던 방법입니다.
- SQL Management Studio를 시작합니다.
- ‘개체 탐색기’에서 서버 노드를 확장합니다.
- 데이터베이스 노드를 확장 한 다음 특정 사용자를 사용하여 액세스하려는 특정 데이터베이스를 확장합니다.
- 데이터베이스의 보안 노드 아래에서 사용자 노드를 확장합니다.
- 특정 사용자를 마우스 오른쪽 버튼으로 클릭하고 ‘속성’을 클릭하십시오. 대화 상자가 나타납니다.
- 사용자가 db_owner 그룹의 구성원인지 확인하고 (이 경로를 사용하기 전에 아래 설명을 읽으십시오)보기를 사용하여 기타 필요한 변경 사항을 확인하십시오. (나는 이것을 2016 년에 사용했습니다. 특정 대화 상자가 다른 버전에서 어떻게 보이는지 확실하지 않아서 구체적이지 않습니다)
답변
해당 사용자에 대한 권한 부여가 필요합니다.
답변
데이터베이스의 공간을 확인하십시오.이 오류는 데이터베이스에 주어진 공간에 비해 공간이 증가했을 때 발생합니다.
답변
SSMS를 사용하여 사용자에게 데이터베이스와 ReportServer 모두에 대한 연결 권한이 있는지 확인했습니다.
쿼리되는 특정 데이터베이스의 속성 아래에서 자격 증명을 매핑하고 데이터 리더 및 공용 권한을 활성화했습니다. 또한 다른 사람들이 언급했듯이 읽기 거부 / 쓰기 거부 상자가 선택되지 않았는지 확인했습니다.
선택 권한 만 있으면 되었기 때문에 보고서에 대해 db 소유권을 활성화하고 싶지 않았습니다.
