CREATE ASSEMBLY(Transact-SQL)CREATE ASSEMBLY (Transact-SQL)

이 항목은 다음에 적용됩니다.예SQL Server(2008부터)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

클래스 메타데이터와 관리 코드를 SQL ServerSQL Server 인스턴스의 개체로 포함하는 관리되는 응용 프로그램 모듈을 만듭니다.Creates a managed application module that contains class metadata and managed code as an object in an instance of SQL ServerSQL Server. 이 모듈을 참조하여 데이터베이스에서 CLR(공용 언어 런타임) 함수, 저장 프로시저, 트리거, 사용자 정의 집계 및 사용자 정의 형식을 만들 수 있습니다.By referencing this module, common language runtime (CLR) functions, stored procedures, triggers, user-defined aggregates, and user-defined types can be created in the database.

경고

CLR은 더 이상 보안 경계로 지원되지 않는 .NET Framework의 CAS(코드 액세스 보안)를 사용합니다.CLR uses Code Access Security (CAS) in the .NET Framework, which is no longer supported as a security boundary. PERMISSION_SET = SAFE로 만든 CLR 어셈블리에서 외부 시스템 리소스에 액세스하고, 비관리 코드를 호출하고, sysadmin 권한을 얻을 수 있습니다.A CLR assembly created with PERMISSION_SET = SAFE may be able to access external system resources, call unmanaged code, and acquire sysadmin privileges. SQL Server 2017SQL Server 2017부터 CLR 어셈블리의 보안을 강화하기 위해 clr strict security라는 sp_configure 옵션이 도입되었습니다.Beginning with SQL Server 2017SQL Server 2017, an sp_configure option called clr strict security is introduced to enhance the security of CLR assemblies. clr strict security는 기본적으로 사용되며 SAFEEXTERNAL_ACCESS 어셈블리가 UNSAFE로 표시된 것처럼 처리됩니다.clr strict security is enabled by default, and treats SAFE and EXTERNAL_ACCESS assemblies as if they were marked UNSAFE. clr strict security 옵션은 이전 버전과의 호환성을 위해 사용하지 않도록 설정할 수 있지만 권장하지는 않습니다.The clr strict security option can be disabled for backward compatibility, but this is not recommended. 모든 어셈블리는 master 데이터베이스에서 UNSAFE ASSEMBLY 권한이 부여된 해당 로그인이 포함된 인증서 또는 비대칭 키로 서명하는 것이 좋습니다.Microsoft recommends that all assemblies be signed by a certificate or asymmetric key with a corresponding login that has been granted UNSAFE ASSEMBLY permission in the master database. 자세한 내용은 CLR strict security를 참조하세요.For more information, see CLR strict security.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문Syntax

CREATE ASSEMBLY assembly_name  
[ AUTHORIZATION owner_name ]  
FROM { <client_assembly_specifier> | <assembly_bits> [ ,...n ] }  
[ WITH PERMISSION_SET = { SAFE | EXTERNAL_ACCESS | UNSAFE } ]  
[ ; ]  
<client_assembly_specifier> :: =  
        '[\\computer_name\]share_name\[path\]manifest_file_name'  
  | '[local_path\]manifest_file_name'  

<assembly_bits> :: =  
{ varbinary_literal | varbinary_expression }  

인수Arguments

assembly_nameassembly_name
어셈블리의 이름입니다.Is the name of the assembly. 이름은 데이터베이스와 유효한 내에서 고유 해야 합니다. 식별자합니다.The name must be unique within the database and a valid identifier.

권한 부여 owner_nameAUTHORIZATION owner_name
어셈블리 소유자인 사용자 또는 역할의 이름을 지정합니다.Specifies the name of a user or role as owner of the assembly. owner_name 는 현재 사용자가 멤버, 또는 현재 사용자 대 한 IMPERSONATE 권한이 있어야 하는 역할의 이름 이어야 합니다. owner_name합니다.owner_name must either be the name of a role of which the current user is a member, or the current user must have IMPERSONATE permission on owner_name. 값을 지정하지 않으면 현재 사용자에게 소유권이 부여됩니다.If not specified, ownership is given to the current user.

<client_assembly_specifier ><client_assembly_specifier>
업로드할 어셈블리가 있는 로컬 경로나 네트워크 위치와 어셈블리에 해당하는 매니페스트 파일 이름을 지정합니다.Specifies the local path or network location where the assembly that is being uploaded is located, and also the manifest file name that corresponds to the assembly. <client_assembly_specifier >는 고정된 문자열 또는 변수는 고정 문자열 식 평가로 표현할 수 있습니다.<client_assembly_specifier> can be expressed as a fixed string or an expression evaluating to a fixed string, with variables. CREATE ASSEMBLY로는 다중 모듈 어셈블리를 로드할 수 없습니다.CREATE ASSEMBLY does not support loading multimodule assemblies. SQL ServerSQL Server에서는 동일한 위치에서 이 어셈블리의 모든 종속 어셈블리를 찾은 다음 동일한 소유자를 사용하여 해당 종속 어셈블리를 루트 수준 어셈블리로 업로드합니다. also looks for any dependent assemblies of this assembly in the same location and also uploads them with the same owner as the root level assembly. 이러한 종속 어셈블리를 찾을 수 없으며 현재 데이터베이스에 종속 어셈블리가 로드되어 있지 않은 경우 CREATE ASSEMBLY는 실패합니다.If these dependent assemblies are not found and they are not already loaded in the current database, CREATE ASSEMBLY fails. 종속 어셈블리가 현재 데이터베이스에 로드되어 있는 경우 해당 어셈블리의 소유자는 새로 만든 어셈블리의 소유자와 동일해야 합니다.If the dependent assemblies are already loaded in the current database, the owner of those assemblies must be the same as the owner of the newly created assembly.

<client_assembly_specifier > 로그인된 한 사용자의 가장 하는 경우 지정할 수 없습니다.<client_assembly_specifier> cannot be specified if the logged in user is being impersonated.

<assembly_bits ><assembly_bits>
어셈블리와 어셈블리의 종속 어셈블리를 구성하는 이진 값 목록입니다.Is the list of binary values that make up the assembly and its dependent assemblies. 목록에서 첫 번째 값은 루트 수준 어셈블리로 간주됩니다.The first value in the list is considered the root-level assembly. 종속 어셈블리에 해당하는 값은 순서에 관계없이 입력할 수 있습니다.The values corresponding to the dependent assemblies can be supplied in any order. 루트 어셈블리의 종속성에 해당하지 않는 값은 모두 무시됩니다.Any values that do not correspond to dependencies of the root assembly are ignored.

참고

포함된 데이터베이스에서는 이 옵션을 사용할 수 없습니다.This option is not available in a contained database.

varbinary_literalvarbinary_literal
varbinary 리터럴.Is a varbinary literal.

varbinary_expressionvarbinary_expression
형식의 식 varbinary합니다.Is an expression of type varbinary.

PERMISSION_SET { 안전 | EXTERNAL_ACCESS | 안전 하지 않은}PERMISSION_SET { SAFE | EXTERNAL_ACCESS | UNSAFE }

중요

PERMISSION_SET 옵션에 영향을 받는 clr strict security 열기 경고에 설명 된 옵션입니다.The PERMISSION_SET option is affected by the clr strict security option, described in the opening warning. clr strict security 가 사용 하도록 설정으로 모든 어셈블리로 처리 UNSAFE합니다.When clr strict security is enabled, all assemblies are treated as UNSAFE.

SQL ServerSQL Server에서 어셈블리에 액세스할 때 이 어셈블리에 부여된 코드 액세스 권한 집합을 지정합니다.Specifies a set of code access permissions that are granted to the assembly when it is accessed by SQL ServerSQL Server. 지정하지 않으면 기본적으로 SAFE가 적용됩니다.If not specified, SAFE is applied as the default.

SAFE를 사용하는 것이 좋습니다.We recommend using SAFE. SAFE는 가장 제한적인 권한 집합입니다.SAFE is the most restrictive permission set. SAFE 권한을 사용하여 어셈블리에서 실행한 코드는 파일, 네트워크, 환경 변수 또는 레지스트리와 같은 외부 시스템 리소스에 액세스할 수 없습니다.Code executed by an assembly with SAFE permissions cannot access external system resources such as files, the network, environment variables, or the registry.

EXTERNAL_ACCESS를 사용하면 어셈블리에서 파일, 네트워크, 환경 변수 및 레지스트리와 같은 특정 외부 시스템 리소스에 액세스할 수 있습니다.EXTERNAL_ACCESS enables assemblies to access certain external system resources such as files, networks, environmental variables, and the registry.

참고

포함된 데이터베이스에서는 이 옵션을 사용할 수 없습니다.This option is not available in a contained database.

UNSAFE를 사용하면 어셈블리에서 SQL ServerSQL Server 인스턴스의 내부 리소스와 외부 리소스 모두에 제한 없이 액세스할 수 있습니다.UNSAFE enables assemblies unrestricted access to resources, both within and outside an instance of SQL ServerSQL Server. UNSAFE 어셈블리 내에서 실행되는 코드는 비관리 코드를 호출할 수 있습니다.Code running from within an UNSAFE assembly can call unmanaged code.

참고

포함된 데이터베이스에서는 이 옵션을 사용할 수 없습니다.This option is not available in a contained database.

중요

SAFE 권한 설정은 SQL ServerSQL Server 인스턴스의 외부 리소스에 액세스하지 않고 계산 및 데이터 관리 태스크를 수행하는 어셈블리에 권장됩니다.SAFE is the recommended permission setting for assemblies that perform computation and data management tasks without accessing resources outside an instance of SQL ServerSQL Server.

SQL ServerSQL Server 인스턴스의 외부 리소스에 액세스하는 어셈블리에는 EXTERNAL_ACCESS를 사용하는 것이 좋습니다.We recommend using EXTERNAL_ACCESS for assemblies that access resources outside of an instance of SQL ServerSQL Server. EXTERNAL_ACCESS 어셈블리는 SAFE 어셈블리 수준의 안정성 및 확장성 보호를 제공하지만 보안 측면에서는 UNSAFE 어셈블리와 유사합니다.EXTERNAL_ACCESS assemblies include the reliability and scalability protections of SAFE assemblies, but from a security perspective are similar to UNSAFE assemblies. 그 이유는 EXTERNAL_ACCESS 어셈블리의 코드에서 명시적으로 호출자를 가장하지 않는 한 기본적으로 코드가 SQL ServerSQL Server 서비스 계정으로 실행되고 이 계정을 통해 외부 리소스에 액세스하기 때문입니다.This is because code in EXTERNAL_ACCESS assemblies runs by default under the SQL ServerSQL Server service account and accesses external resources under that account, unless the code explicitly impersonates the caller. 따라서 EXTERNAL_ACCESS 어셈블리를 만드는 사용 권한은 SQL ServerSQL Server 서비스 계정에서 코드를 실행하도록 트러스트된 로그인에만 부여해야 합니다.Therefore, permission to create EXTERNAL_ACCESS assemblies should be granted only to logins that are trusted to run code under the SQL ServerSQL Server service account. 가장에 대 한 자세한 내용은 참조 CLR 통합 보안합니다.For more information about impersonation, see CLR Integration Security.

UNSAFE를 지정하면 어셈블리의 코드를 사용하여 SQL ServerSQL Server 프로세스 공간에서 모든 작업을 자유롭게 수행할 수 있게 되므로 SQL ServerSQL Server가 취약해질 가능성이 있습니다.Specifying UNSAFE enables the code in the assembly complete freedom to perform operations in the SQL ServerSQL Server process space that can potentially compromise the robustness of SQL ServerSQL Server. UNSAFE 어셈블리는 SQL ServerSQL Server 또는 공용 언어 런타임 중 하나의 보안 시스템을 손상시킬 수도 있습니다.UNSAFE assemblies can also potentially subvert the security system of either SQL ServerSQL Server or the common language runtime. 따라서 UNSAFE 권한은 가장 높은 수준의 트러스트된 어셈블리에만 부여해야 합니다.UNSAFE permissions should be granted only to highly trusted assemblies. 구성원만는 sysadmin 고정된 서버 역할 만들고 안전 하지 않은 어셈블리를 변경할 수 있습니다.Only members of the sysadmin fixed server role can create and alter UNSAFE assemblies.

어셈블리 사용 권한 집합에 대 한 자세한 내용은 참조 어셈블리 디자인합니다.For more information about assembly permission sets, see Designing Assemblies.

주의Remarks

CREATE ASSEMBLY는 관리 코드에서 .dll 파일로 미리 컴파일된 어셈블리를 SQL Server 인스턴스 내부에서 사용할 수 있도록 업로드합니다.CREATE ASSEMBLY uploads an assembly that was previously compiled as a .dll file from managed code for use inside an instance of SQL Server.

사용하도록 설정되면 CREATE ASSEMBLYALTER ASSEMBLY 문의 PERMISSION_SET 옵션은 런타임에서 무시되지만 PERMISSION_SET 옵션은 메타데이터에서 유지됩니다.When enabled, the PERMISSION_SET option in the CREATE ASSEMBLY and ALTER ASSEMBLY statements is ignored at run-time, but the PERMISSION_SET options are preserved in metadata. 이 옵션을 무시하면 기존 코드 문의 중단을 최소화합니다.Ignoring the option, minimizes breaking existing code statements.

SQL ServerSQL Server에서는 이름, culture 및 공개 키가 동일한 서로 다른 버전의 어셈블리를 등록할 수 없습니다. does not allow registering different versions of an assembly with the same name, culture and public key.

에 지정 된 어셈블리에 액세스 하려고 할 때 <client_assembly_specifier >, SQL ServerSQL Server 현재 Windows 로그인의 보안 컨텍스트를 가장 합니다.When attempting to access the assembly specified in <client_assembly_specifier>, SQL ServerSQL Server impersonates the security context of the current Windows login. 경우 <client_assembly_specifier > 네트워크 위치 (UNC 경로)를 지정 합니다. 현재 로그인의 가장 전달 되지 않습니다 네트워크 위치에 위임 제한 때문입니다.If <client_assembly_specifier> specifies a network location (UNC path), the impersonation of the current login is not carried forward to the network location because of delegation limitations. 이 경우에는 SQL ServerSQL Server 서비스 계정의 보안 컨텍스트를 사용하여 액세스합니다.In this case, access is made using the security context of the SQL ServerSQL Server service account. 자세한 내용은 참조 자격 증명 ( 데이터베이스 엔진 )합니다.For more information, see Credentials (Database Engine).

로 지정 된 루트 어셈블리 외에도 assembly_name, SQL ServerSQL Server 업로드할 루트 어셈블리에서 참조 되는 모든 어셈블리를 업로드 하 려 합니다.Besides the root assembly specified by assembly_name, SQL ServerSQL Server tries to upload any assemblies that are referenced by the root assembly being uploaded. 참조하는 어셈블리가 이전의 CREATE ASSEMBLY 문에 의해 이미 데이터베이스에 업로드된 경우에는 루트 어셈블리에서 사용할 수 있으므로 해당 어셈블리는 업로드되지 않습니다.If a referenced assembly is already uploaded to the database because of an earlier CREATE ASSEMBLY statement, this assembly is not uploaded but is available to the root assembly. 종속 어셈블리가 이전에 업로드되지 않았지만 SQL ServerSQL Server가 원본 디렉터리에서 해당 매니페스트 파일을 찾지 못하는 경우 CREATE ASSEMBLY는 오류를 반환합니다.If a dependent assembly was not previously uploaded, but SQL ServerSQL Server cannot locate its manifest file in the source directory, CREATE ASSEMBLY returns an error.

루트 어셈블리에서 참조하는 종속 어셈블리가 데이터베이스에 없으며 암시적으로 루트 어셈블리와 함께 로드되는 경우 해당 종속 어셈블리의 권한 집합은 루트 수준 어셈블리와 동일합니다.If any dependent assemblies referenced by the root assembly are not already in the database and are implicitly loaded together with the root assembly, they have the same permission set as the root level assembly. 종속 어셈블리를 루트 수준 어셈블리와 다른 권한 집합을 사용하여 만들어야 한다면 적절한 권한 집합을 사용하여 루트 수준 어셈블리보다 먼저 명시적으로 업로드해야 합니다.If the dependent assemblies must be created by using a different permission set than the root-level assembly, they must be uploaded explicitly before the root level assembly with the appropriate permission set.

어셈블리 유효성 검사Assembly Validation

SQL ServerSQL Server에서는 CREATE ASSEMBLY 문으로 업로드된 어셈블리 이진 파일에 대해 다음 사항을 확인합니다. performs checks on the assembly binaries uploaded by the CREATE ASSEMBLY statement to guarantee the following:

  • 어셈블리 이진 파일이 유효한 메타데이터와 코드 세그먼트로 된 올바른 형식인지 확인하고 코드 세그먼트에 유효한 MSIL(Microsoft Intermediate Language) 명령이 있는지 확인합니다.The assembly binary is well formed with valid metadata and code segments, and the code segments have valid Microsoft Intermediate language (MSIL) instructions.

  • 지원 되는 다음 어셈블리 중 하나를 참조 하는 시스템 어셈블리 집합은 SQL ServerSQL Server: Microsoft.Visualbasic.dll, Mscorlib.dll, System.Data.dll, System.dll, System.Xml.dll, Microsoft.Visualc.dll, Custommarshallers.dll, System.Security.dll, System.Web.Services.dll, System.Data.SqlXml.dll, System.Core.dll 및 system.xml.linq.dll 중 하나입니다.The set of system assemblies it references is one of the following supported assemblies in SQL ServerSQL Server: Microsoft.Visualbasic.dll, Mscorlib.dll, System.Data.dll, System.dll, System.Xml.dll, Microsoft.Visualc.dll, Custommarshallers.dll, System.Security.dll, System.Web.Services.dll, System.Data.SqlXml.dll, System.Core.dll, and System.Xml.Linq.dll. 다른 시스템 어셈블리는 참조할 수 있지만 데이터베이스에 명시적으로 등록해야 합니다.Other system assemblies can be referenced, but they must be explicitly registered in the database.

  • SAFE 또는 EXTERNAL ACCESS 권한 집합을 사용하여 만든 어셈블리의 경우For assemblies created by using SAFE or EXTERNAL ACCESS permission sets:

    • 어셈블리 코드가 안전한 형식이어야 합니다.The assembly code should be type-safe. 형식 안전성은 어셈블리에 대해 공용 언어 런타임 검증 도구를 실행하여 설정합니다.Type safety is established by running the common language runtime verifier against the assembly.

    • 어셈블리의 클래스에는 읽기 전용으로 표시되지 않은 정적 데이터 멤버가 포함되어서는 안 됩니다.The assembly should not contain any static data members in its classes unless they are marked as read-only.

    • 어셈블리의 클래스는 파이널라이저 메서드를 포함할 수 없습니다.The classes in the assembly cannot contain finalizer methods.

    • 어셈블리의 클래스나 메서드에는 허용되는 코드 특성만 사용하여 주석을 추가해야 합니다.The classes or methods of the assembly should be annotated only with allowed code attributes. 자세한 내용은 참조 CLR 루틴에 대 한 사용자 지정 특성합니다.For more information, see Custom Attributes for CLR Routines.

    CREATE ASSEMBLY를 실행할 때 수행되는 위와 같은 확인 작업 외에도 어셈블리의 코드를 실행할 때 수행되는 추가 확인 작업이 있습니다.Besides the previous checks that are performed when CREATE ASSEMBLY executes, there are additional checks that are performed at execution time of the code in the assembly:

  • 특정 호출 MicrosoftMicrosoft .NET Framework.NET Framework 어셈블리의 권한 집합에 해당 권한이 포함 되어 있지 않으면 특정 코드 액세스 권한이 필요한 Api는 실패할 수 있습니다.Calling certain MicrosoftMicrosoft .NET Framework.NET Framework APIs that require a specific Code Access Permission may fail if the permission set of the assembly does not include that permission.

  • SAFE 및 EXTERNAL_ACCESS 어셈블리의 경우 특정 HostProtectionAttributes를 사용하여 주석을 추가한 .NET Framework.NET Framework API를 호출하려고 하면 실패합니다.For SAFE and EXTERNAL_ACCESS assemblies, any attempt to call .NET Framework.NET Framework APIs that are annotated with certain HostProtectionAttributes will fail.

    자세한 내용은 참조 어셈블리 디자인합니다.For more information, see Designing Assemblies.

PermissionsPermissions

CREATE ASSEMBLY 권한이 필요합니다.Requires CREATE ASSEMBLY permission.

경우 PERMISSION_SET = EXTERNAL_ACCESS 지정 되 면 필요EXTERNAL ACCESS ASSEMBLY 서버에 대 한 권한이 있습니다.If PERMISSION_SET = EXTERNAL_ACCESS is specified, requiresEXTERNAL ACCESS ASSEMBLY permission on the server. 경우 PERMISSION_SET = UNSAFE를 지정 해야 UNSAFE ASSEMBLY 서버에 대 한 권한이 합니다.If PERMISSION_SET = UNSAFE is specified, requires UNSAFE ASSEMBLY permission on the server.

업로드할 어셈블리에서 참조하는 어셈블리가 이미 데이터베이스에 있는 경우 사용자는 해당 어셈블리의 소유자여야 합니다.User must be the owner of any assemblies that are referenced by the assembly that are to be uploaded if the assemblies already exist in the database. 파일 경로 사용 하 여 어셈블리를 업로드 하려면 현재 사용자의 멤버 이거나 Windows 인증 로그인 이어야 합니다는 sysadmin 고정된 서버 역할입니다.To upload an assembly by using a file path, the current user must be a Windows authenticated login or a member of the sysadmin fixed server role. CREATE ASSEMBLY를 실행하는 사용자의 Windows 로그인에는 문에서 로드할 공유와 파일에 대한 읽기 권한이 있어야 합니다.The Windows login of the user that executes CREATE ASSEMBLY must have read permission on the share and the files being loaded in the statement.

CLR 엄격한 보안 사용 권한Permissions with CLR strict security

CLR strict security를 사용할 때 CLR 어셈블리를 만드는 데 필요한 권한은 다음과 같습니다.The following permissions required to create a CLR assembly when CLR strict security is enabled:

  • 사용자에게 CREATE ASSEMBLY 권한이 있어야 합니다.The user must have the CREATE ASSEMBLY permission
  • 다음 조건 중 하나가 충족되어야 합니다.And one of the following conditions must also be true:

    • 어셈블리는 서버에 대한 UNSAFE ASSEMBLY 권한이 있는 해당 로그인이 포함된 인증서 또는 비대칭 키로 서명됩니다.The assembly is signed with a certificate or asymmetric key that has a corresponding login with the UNSAFE ASSEMBLY permission on the server. 어셈블리에 서명하는 것이 좋습니다.Signing the assembly is recommended.
    • 데이터베이스는 ON으로 설정된 TRUSTWORTHY 속성을 가지고 있고 서버에 대한 UNSAFE ASSEMBLY 권한이 있는 로그인으로 소유됩니다.The database has the TRUSTWORTHY property set to ON, and the database is owned by a login that has the UNSAFE ASSEMBLY permission on the server. 이 방법은 권장되지 않습니다.This option is not recommended.

    어셈블리 사용 권한 집합에 대 한 자세한 내용은 참조 어셈블리 디자인합니다.For more information about assembly permission sets, see Designing Assemblies.

Examples

예 1: dll에서 어셈블리 만들기Example A: Creating an assembly from a dll

적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

다음 예에서는 SQL Server 데이터베이스 엔진SQL Server Database Engine 예제를 로컬 컴퓨터의 기본 위치에 설치하고 HelloWorld.csproj 예제 응용 프로그램을 컴파일했다고 가정합니다.The following example assumes that the SQL Server 데이터베이스 엔진SQL Server Database Engine samples are installed in the default location of the local computer and the HelloWorld.csproj sample application is compiled. 자세한 내용은 참조 Hello World 예제합니다.For more information, see Hello World Sample.

CREATE ASSEMBLY HelloWorld   
FROM <system_drive>:\Program Files\Microsoft SQL Server\100\Samples\HelloWorld\CS\HelloWorld\bin\debug\HelloWorld.dll  
WITH PERMISSION_SET = SAFE;  

예 b: 어셈블리 비트 로부터 어셈블리 만들기Example B: Creating an assembly from assembly bits

적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

샘플 비트 (하지 않은 완전 하거나 유효)를 사용자 어셈블리 비트로 대체 합니다.Replace the sample bits (which are not complete or valid) with your assembly bits.

CREATE ASSEMBLY HelloWorld  
    FROM 0x4D5A900000000000  
WITH PERMISSION_SET = SAFE;  

관련 항목:See Also

ALTER assembly( Transact SQL ) ALTER ASSEMBLY (Transact-SQL)
DROP assembly( Transact SQL ) DROP ASSEMBLY (Transact-SQL)
CREATE FUNCTION(Transact-SQL) CREATE FUNCTION (Transact-SQL)
CREATE PROCEDURE(Transact-SQL) CREATE PROCEDURE (Transact-SQL)
CREATE TRIGGER(Transact-SQL) CREATE TRIGGER (Transact-SQL)
CREATE TYPE(Transact-SQL) CREATE TYPE (Transact-SQL)
집계 ( 만들기 Transact SQL ) CREATE AGGREGATE (Transact-SQL)
EVENTDATA(Transact-SQL) EVENTDATA (Transact-SQL)
사용 시나리오 및 공용 언어 런타임 (에 대 한 예제 CLR ) 통합Usage Scenarios and Examples for Common Language Runtime (CLR) Integration