2017-03-08 2 views
2

로 (약) 프로젝트 DBA에 대한 사용 권한, 나는 타입 별칭을 만들었습니다.SQL 사용자 정의 별칭 유형

데이터베이스 권한 (프로젝트 정치)이 약간 낮은 다른 개발자 중 일부는 해당보기 및 권한을 업데이트 할 수 없습니다. 그들이하려고하면

, 그들은 얻을 :

Cannot find the type 'StockQuantity', because it does not exist or you do not have permission. 

가 숫자 (18,2)와 StockQuantity를 교체하는 경우, 그것을 잘 작동합니다. ALTER 스크립트를 실행하면 정상적으로 작동합니다.

분명히 SQL 서버는 별칭 유형을 사용 권한이 필요한 것으로 간주합니다. 응.

이 문제를 해결하려면 무엇을 변경해야합니까? 여기서 찾을 수있는 사용자 정의 테이블 유형에 대한 EXECUTE 권한 부여에 대한 설명 만 볼 수 있습니다.

+2

[잘못된 습관 : 별칭 유형 사용 - Aaron Bertrand - 2009-10-14] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/14/bad-habits-to-kick-using -alias-types.aspx) – SqlZim

+0

그래, 이미 그 게시물을 보았습니다. 나는 Alias ​​Type의 (다소 실망스러운) 한계에 대해 알고있다. 별칭 유형의 플래그 지정 특성은 여기에서 사용할 가치가있는만큼 가치가 있다는 결론을 내 렸습니다. – Brondahl

답변

0

응답 - 다른 사용자에게 참조 권한을 부여해야했습니다. 기본적으로 사용자

GRANT REFERENCES ON TYPE::dbo.StockQuantity TO OtherDevUser; 

EXECUTEVIEW DEFINITION했다. REFERENCES을 지정했고 물건이 다시 작동했습니다. 사용할 수 다른 권한은 TAKE OWNERSHIPCONTROL 있습니다


이 만든 유형에 대한 참으로 필요하다고

MSDN 인용 : sp_addtype을 사용하여 만든 사용자 정의 형식과 달리 https://msdn.microsoft.com/en-us/library/ms175007.aspx

, 공공 데이터베이스 역할 CREATE TYPE을 사용하여 만든 형식에 대한 REFERENCES 권한이 자동으로 부여되지 않습니다. 이 권한은 별도로 부여해야합니다.

SELECT CURRENT_USER 

것은 무엇을 확인하려면 : https://social.msdn.microsoft.com/Forums/sqlserver/en-US/274456c2-1e4a-436b-b10b-a972e95f9e87/references-and-view-definition-permissions-to-a-user-on-an-alias-data-type?forum=sqlsecurity

내가 실행하는 그를 가지고 행동하고 있었는지 사용자가 다른 설정하려면 :


나는 여기에 문제의 넓은 논의를 발견하여이를 해결 사용 권한 및 기타 Dev는 실행했습니다 :

SELECT * FROM fn_my_permissions('StockQuantity','type')