Monday, August 31, 2009

MCTS 70-433 Security for CLR External Assembly

You can create a CLR External Assembly (a DLL of external code) but you will need to have appropriate permissions set:


http://social.msdn.microsoft.com/Forums/en-US/sqlsecurity/thread/b27e8e16-2d84-4eec-a87d-df53b2e298b

  • CREATE ASSEMBLY failed: not authorized for PERMISSION_SET = EXTERNAL_ACCESS

  • Wednesday, April 19, 2006 8:27 PM
  • AndrewAPlus
     

    CREATE ASSEMBLY ClrSql from 'C:\ClrSql.dll' WITH PERMISSION_SET = EXTERNAL_ACCESS
    gives me this . . .
    Msg 10327, Level 14, State 1, Line 1
    CREATE ASSEMBLY for assembly 'ClrSql' failed because assembly 'ClrSql' is not authorized for PERMISSION_SET = EXTERNAL_ACCESS. The assembly is authorized when either of the following is true: the database owner (DBO) has EXTERNAL ACCESS ASSEMBLY permission and the database has the TRUSTWORTHY database property on; or the assembly is signed with a certificate or an asymmetric key that has a corresponding login with EXTERNAL ACCESS ASSEMBLY permission.
    How do I allow EXTERNAL_ACCESS and UNSAFE permissions? The property appears grayed out, and I am the dbo.


    ReplyQuote
     


  • Wednesday, April 19, 2006 10:05 PM
    Jens K. Suessmeyer -MSFT, Moderator
     

  • Hi,
    the quickfix would be to set the database to trustworthy:

    ALTER DATABASE SomeDatabase SET TRUSTWORTHY ON

    Another option would be to make the assembly conformable to the requirements as mentioned in the error message.
     
    HTH, Jens Suessmeyer.

    ---
    http://www.sqlserver2005.de


No comments: