DBO 스키마 이름을 강제하는 방법?
-
11-07-2019 - |
문제
C#에서 UDF를 생성하기 위해 2008 년에 "SQL Server Project"를 사용하여 DLL을 MS SQL Server 2005에 게시하기 위해 Deploy Command를 사용하고 있습니다.
생성 된 모든 UDF가 나 (사용자로서)가 소유하고있는 것을 제외하고는 모두 잘 작동하지만 DBO 스키마를 유지하고 싶었습니다 (예 : DBO.udf_test -Not Jonny.udf_test).
Thar를 관리하는 방법이 있습니까?
해결책 2
내부에서 모든 것을 할 수있는 또 다른 접근법을 발견했습니다.
"postdeployscript.sql"이라는 Project SQL 스크립트에 추가했습니다.
@SQL Nvarchar (200) 선언
@sql = 'set schema dbo 송신' + current_user + '. [udf_get_audit_value]'
실행 (@SQL)
가다
스크립트는 해상 프로세스 중 VS에 의해 자동으로 실행되며 현재 사용자에서 DBO로 스키마를 변경합니다.
단점 : 수동으로 삭감하는 각 UDF/USP를 추가해야합니다.
추신 : 배포 전에 predeployscript.sql을 사용하여 일부 쉼표를 실행할 수도 있습니다.
다른 팁
Sysadmin 또는 데이터베이스의 DBO 인 계정에서 UDF를 배포하십시오. DLL을 빌드 한 다음 데이터베이스에 DBO로 관리 스튜디오에 로그인하여 다음 명령을 실행하여 수동으로 배포 할 수 있습니다.
조립 지오 코드를 작성하십시오
'C : path yourudf.dll'
permission_set = 안전합니다
또는
- 솔루션 탐색기의 Visual Studio 내에서 UDF 프로젝트를 클릭하십시오 (솔루션이 아님).
- 속성으로 이동하십시오.
- 데이터베이스 탭을 클릭하십시오.
- 연결 문자열을 변경하고 여기에서 어셈블리 소유자를 변경할 수도 있습니다.