|
|
CREATE ASSEMBLY
Upload an assembly that was previously compiled as a .dll file from managed code for use inside an instance of SQL Server.
An Assemby object is a managed application module, other objects may reference this module - stored procedures, triggers, CLR functions, user-defined aggregates/types.
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 }
Key:
assembly_name The (unique) name of the assembly.
owner_name The usernname or role as owner of the assembly.
client_assembly_specifier The local path or network location for the assembly being uploaded.
A fixed string or an expression evaluating to a fixed string. (Assembly manifest filename)
assembly_bits List of binary values that make up the assembly and it's
dependent assemblies, starting with the root-level assembly.
PERMISSION_SET SAFE Restrictive code access permissions, no access to external files/networks.
PERMISSION_SET EXTERNAL_ACCESS Allow some external system resources, files/networks/Registry
PERMISSION_SET UNSAFE unrestricted access to resources
Permissions:
CREATE ASSEMBLY
EXTERNAL ACCESS ASSEMBLY for PERMISSION_SET = EXTERNAL_ACCESS
SYSADMIN fixed server role for PERMISSION_SET = UNSAFE
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.
When accessing client_assembly_specifier, SQL Server will impersonate either the security context of the current Windows login or the security context of the SQL Server service account.
Example
CREATE ASSEMBLY MyDemo
FROM 'C:\democode\HelloWorld.dll'
WITH PERMISSION_SET = SAFE;
"Until all the powerful are just, the weak will be secure only in the strength of this Assembly" - John F. Kennedy, address to the UN General Assembly
Related commands:
ALTER ASSEMBLY
DROP ASSEMBLY
CREATE FUNCTION
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
CREATE AGGREGATE
Equivalent Oracle command: