에서
덕분에, 나는, 즉이 질문에 대답 한 것처럼 당신은 그냥 자신을 위해 볼 수있는 그 파일을 실행하지 않은 이유에 궁금 권리? ;-)하지만 예,이 세 단계는 PERMISSION_SET = UNSAFE
으로 표시된 어셈블리를 만들고 사용하는 데 필요한 모든 것입니다.
"게시"스크립트는 항상 증분입니다. 따라서 모든 상황에서 작동 할 배포 스크립트로 간주해서는 안됩니다. 빌드를 수행하고 변경하지 않으면 개체를 항상 삭제할 수있는 옵션이없는 한 어셈블리를 다시 배포하지 않습니다 (데이터베이스는 있지만 어셈블리는 기억하지 못합니다.)). "생성"스크립트는 생성 옵션을 선택하면 항상 모든 것을 삭제하고 다시 만듭니다.
그리고 이것이 암시 된 경우 SSDT에 의해 생성 된 게시 스크립트는 기본적으로 프로젝트의 일부가 아닌 서버 수준 개체로 엉망이되지 않습니다 ("프로젝트의 일부분"은 사용자가 master
DB)를 첨가 하였다. 따라서 전체 작성 스크립트는 [master]
에서 로그인 또는 비대칭 키를 제거하지 않습니다. 그러나 필요한 경우 "로그인을 삭제하지 마십시오"및/또는 "비대칭 키를 삭제하지 마십시오"옵션이 있습니다.
그리고이 질문은 이전 버전의 SQL Server에 대한 것으로, 방금 발표 된 SQL Server 2017은 어셈블리를 배포하기 위해 규칙을 약간 변경합니다. 이 질문에 설명 된 방법은 비대칭 키를 먼저 만들 때 여전히 작동하지만 이제는 SAFE
어셈블리에도 필요합니다. 내가 다시 SQL 서버 2012 모든 버전이 함께하는) 작업을 모두 처리하기위한 (구체적으로) 두 가지 옵션에 대해 설명하고, b)는 완전 자동화 된 방식으로 Visual Studio 및 SSDT의 프레임 워크와 함께 작동 :
먼저 링크 (솔루션 1), I는 SQL Server 중앙을 위해 쓴 다음 문서에 설명 된 방법의 적응되어 있고 그 SQL 서버 2005 작업 수행 - SQL 서버 2016을 :
Stairway to SQLCLR Level 7: Development and Security
예 게시 구성이 올바르게 구성되어 있으면 가능합니다 (즉, CLR 또는 smf를 무시하지 않아도 됨) –
@DmitrijKultasev SSMS에서 파일을 열고 실행을 누르는 것만 큼 간단합니까? 공개/개인 키가 어디에 있는지 말할 필요가 없습니다. –
이 작업을 수행하는 방법을 모르는 경우 ** 안전하지 않은 어셈블리를 배포해서는 안됩니다. 아마도 SQLCLR에서 전자 메일을 보내려고 시도하지 않아도됩니다. 또는 CSV 파일을로드하는 데 사용하십시오. 또는 쿼리를 실행하십시오. 또는 SQL Server 에이전트, SSIS, 외부 도구에서 수행해야하는 작업.낭비되는 RAM 또는 CPU 사이클은 서버의 메모리 및 CPU 리소스에서 가져옵니다. 따라서 성능이 손상됩니다. –