문제

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 = 안전합니다

또는

  1. 솔루션 탐색기의 Visual Studio 내에서 UDF 프로젝트를 클릭하십시오 (솔루션이 아님).
  2. 속성으로 이동하십시오.
  3. 데이터베이스 탭을 클릭하십시오.
  4. 연결 문자열을 변경하고 여기에서 어셈블리 소유자를 변경할 수도 있습니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top