Previous Thread:   bellsouth e-cards

11/23/2005 9:50:27 PM    Re: VS SQL Server Project - Adding Reference to Microsoft.SqlServer.ManagedDTS.dll
U1FMIFNlcnZlciBpbnRlbnRpb25hbGx5IHJlc3RyaWN0cyBzZXQgb2YgYXNzZW1ibGllcyBhIHN0  
  
b3JlZCBwcm9jIA0KY2FuIHVzZSB0byBhIGxpc3Qgb2YgInNhZmUiIGFzc2VtYmxpZXMuIFNTSVMg  
  
cnVudGltZSBhbGxvd3Mgb25lDQp0byBkbyBhIGxvdCBvZiAidW5zYWZlIiBzdHVmZiwgd2UgZG9u  
  
J3QgcmVjb21tZW5kIHJ1bm5pbmcgaXQNCmluc2lkZSBTUUwgU2VydmVyLg0KDQpUaGUgcmVjb21t  
  
ZW5kZWQgd2F5IHRvIGV4ZWN1dGUgU1NJUyBwYWNrYWdlIGlzIHRvIHJ1biBpdA0KZXh0ZXJuYWxs  
  
eSwgdXNpbmcgRFRFWEVDLkVYRSB0b29sLiBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IGl0DQp3b3Jr  
  
ZWQgaW4gU1FMIFNlcnZlciAyMDAwLCB3aGljaCB1c2VkIERUU1JVTi5FWEUgdG9vbC4NCllvdSBj  
  
YW4gYWxzbyBjcmVhdGUgYW4gQWdlbnQgam9iIGFuZCB0aGVuIHN0YXJ0IGl0IGZyb20gVC1TUUws  
  
DQp0aGlzIGlzIHByb2JhYmx5IHRoZSBiZXN0IGFwcHJvYWNoLg0KDQpUaGFua3MsDQpNaWNoYWVs  
  
Lg0KLS0gDQpUaGlzIHBvc3RpbmcgaXMgcHJvdmlkZWQgIkFTIElTIiB3aXRoIG5vIHdhcnJhbnRp  
  
ZXMsIGFuZCBjb25mZXJzIG5vIHJpZ2h0cy4NCg0KIkRvbm5pZSBIYWxlIiA8ZGhhbGVAZHJvcC1z  
  
cG90LmNvbT4gd3JvdGUgaW4gbWVzc2FnZSBuZXdzOnVMZDlzTUw4RkhBLjM1OTJAVEsyTVNGVE5H  
  
UDEyLnBoeC5nYmwuLi4NCj4gSSdtIHVzaW5nIGEgVlMgU1FMIFNlcnZlciBwcm9qZWN0IHRvIGNy  
  
ZWF0ZSBhIHN0b3JlZCBwcm9jZWR1cmUuIEluIHRoYXQgDQo+IHN0b3JlZCBwcm9jZWR1cmUsIEkg  
  
d2FudCB0byBsb2FkIGFuIFNTSVMgcGFja2FnZSwgc2V0IHNvbWUgb2YgdGhlIHBhY2thZ2UgDQo+  
  
IHZhcmlhYmxlcywgYW5kIGV4ZWN1dGUgaXQuIEZyb20gdGhlIFNTSVMgcmVmZXJlbmNlIGRvY3Ms  
  
IHRoYXQgbG9va3MgDQo+IHN0cmFpZ2h0Zm9yd2FyZC4NCj4gDQo+IFRvIGJlIGFibGUgdG8gYWNj  
  
ZXNzIHRoZSBNaWNyb3NvZnQuU3FsU2VydmVyLkR0cy5SdW50aW1lIG5hbWVzcGFjZSwgSSBuZWVk  
  
IA0KPiB0byBhZGQgYSByZWZlcmVuY2UgdG8gdGhlIE1pY3Jvc29mdC5TcWxTZXJ2ZXIuTWFuYWdl  
  
ZERUUy5kbGwgYXNzZW1ibHkuIA0KPiBIb3dldmVyLCB3aGVuIEkgdXNlIHRoZSBub3JtYWwgIkFk  
  
ZCBSZWZlcmVuY2UiIG1lY2hhbmlzbSwgb25seSBhIGZpeGVkIHNldCANCj4gb2YgYXNzZW1ibGll  
  
cyBhcmUgZGlzcGxheWVkIChwbHVzIGEgd2F5IHRvIHNlbGVjdCBwcm9qZWN0IGFzc2VtYmxpZXMp  
  
LiBUaGUgDQo+ICJCcm93c2UiIGNhcGFiaWxpdHkgZ2VuZXJhbGx5IHRoZXJlIGluIG90aGVyIHR5  
  
cGVzIG9mIHByb2plY3RzIGlzbid0IA0KPiBhdmFpbGFibGUuIEkndmUgc2VlbiBzb21lIGRvY3Mg  
  
dG8gdGhlIGVmZmVjdCB0aGF0IHRoZSBob3N0ZWQgQ0xSIHB1cnBvc2VseSANCj4gcmVzdHJpY3Rz  
  
IHRoZSBhdmFpbGFibGUgZnJhbWV3b3JrIGFzc2VtYmxpZXMuDQo+IA0KPiBTbyB0aGUgc2hvcnQg  
  
cXVlc3Rpb24gaXMsIGhvdyBkbyBJIGFjaGlldmUgd2hhdCBJJ20gdHJ5aW5nIHRvIGRvPyBEVFMg  
  
DQo+IHBhY2thZ2VzIHdlcmUgYXZhaWxhYmxlIGZyb20gVC1TUUwgc3RvcmVkIHByb2NzIGluIFNR  
  
TCBTZXJ2ZXIgMjAwMC4gSSd2ZSBnb3QgDQo+IHRvIGJlbGlldmUgdGhpcyBpcyBwb3NzaWJsZSBp  
  
biBTUUwgU2VydmVyIDIwMDUuDQo+IA0KPiBPbiBhIG1vcmUgbGVuZ3RoeSBub3RlLCBJIHNwZW50  
  
IGEgY291cGxlIG9mIGhvdXJzIHRyeWluZyB0byBmaWd1cmUgb3V0IGhvdyANCj4gdG8gYWRkIHRo  
  
ZSBNaWNyb3NvZnQuU3FsU2VydmVyLk1hbmFnZWREVFMuZGxsIGFzc2VtYmx5IHRvIHRoZSBkYXRh  
  
YmFzZSB3aGVyZSANCj4gSSB3YW50IHRvIGRlcGxveSBteSBzdG9yZWQgcHJvYy4gVGhlIHNldCBv  
  
ZiBwZXJtaXNzaW9ucyBpbiBhIGRlcGxveWVkIA0KPiBhc3NlbWJseSBpbmNsdWRlcyBvbmUgY2Fs  
  
bGVkICJSZWZlcmVuY2VzIiB3aGljaCBvbiB0aGUgc3VyZmFjZSBpbXBsaWVkIHRoYXQgDQo+IGl0  
  
IG1pZ2h0IGdpdmUgbWUgd2hhdCBJIHdhbnQuDQo+IA0KPiBVbmZvcnR1bmF0ZWx5LCB0aGF0IGVu  
  
ZGVkIGluIGZhaWx1cmUgZHVlIHRvIHRoZSBFWFRFUk5BTCBBQ0NFU1MgLyBVTlNBRkUgDQo+IGFz  
  
c2VtYmx5IGlzc3Vlcy4gSSd2ZSBzcGVudCBxdWl0ZSBhIGJpdCBvZiB0aW1lIHRyeWluZyB0byBm  
  
aWd1cmUgb3V0IHRoZSANCj4gcHJlY2lzZSwgc2VjdXJlIHN0ZXBzIHRvIGNvcnJlY3RseTogYSkg  
  
cHJlcGFyZSB0aGUgYXNzZW1ibHkgdG8gYmUgZGVwbG95ZWQgDQo+IGFzIGVpdGhlciBleHRlcm5h  
  
bCBhY2Nlc3Mgb3IgdW5zYWZlOyBiKSBjb25maWd1cmUgYSBsb2dpbiAvIGRiIG93bmVyIHdpdGgg  
  
DQo+IHRoZSBhcHByb3ByaWF0ZSBleHRlcm5hbCBhY2Nlc3Mgb3IgdW5zYWZlIHBlcm1pc3Npb25z  
  
IHRvIGRlcGxveSBzdWNoIA0KPiBhc3NlbWJsaWVzOyBjKSBtYXJrIGEgZGF0YWJhc2UgYXMgdHJ1  
  
c3R3b3J0aHkuDQo+IA0KPiBUaGUgZG9jIGF0IA0KPiBodHRwOi8vZG93bmxvYWQubWljcm9zb2Z0  
  
LmNvbS9kb3dubG9hZC9jL2MvNi9jYzY2YjU3Mi1hNDAyLTRjNmEtODIzMy1iOWM3ZDA1ODQwYzcv  
  
UmVhZG1lU1FMRVhQMjAwNS5odG0gDQo+IHNlZW1zIHRvIGNvbWUgY2xvc2VzdCB0byBzcGVjaWZ5  
  
aW5nIHdoYXQgdG8gZG8sIGJ1dCBpdCdzIG5vdCBjb21wbGV0ZS4gRG9lcyANCj4gdGhlICJDUkVB  
  
VEUgQVNZTU1FVFJJQyBLRVkiIGNvbW1hbmQgY2hhbmdlIHRoZSBkbGwgdGhhdCdzIHNwZWNpZmll  
  
ZD8gSSBkb24ndCANCj4gd2FudCB0byBzY3JldyB3aXRoIHRoZSBNaWNyb3NvZnQuU3FsU2VydmVy  
  
Lk1hbmFnZWREVFMuZGxsIHRoYXQgTWljcm9zb2Z0IA0KPiBzaGlwcy4gQWZ0ZXIgSSBjcmVhdGUg  
  
dGhlIGxvZ2luIHdpdGggdGhlIGtleSBhbmQgZ3JhbnQgaXQgRVhURVJOQUwgQUNDRVNTIA0KPiBB  
  
U1NFTUJMWSBwZXJtaXNzaW9ucywgd2hhdCBkbyBJIGRvIHdpdGggaXQgYW5kIHRoZSBhc3NlbWJs  
  
eSB2aWEgdGhlIENSRUFURSANCj4gQVNTRU1CTFkgY29tbWFuZD8gVGhlIGVycm9ycyBkaXNwbGF5  
  
ZWQgd2hlbiBjcmVhdGUgYXNzZW1ibHkgZmFpbHMgZHVlIHRvIA0KPiBleHRlcm5hbCBhY2Nlc3Mg  
  
aXNzdWVzIG1lbnRpb24gdGhlIGRhdGFiYXNlIG93bmVyLCBub3Qgc29tZSBsb2dpbiBjcmVhdGVk  
  
IA0KPiB3aXRoIHRoZSBhc3ltbWV0cmljIGtleS4gQmV5b25kIHRoYXQsIGlmIEkgZG8gc3VjY2Vl  
  
ZCBpbiBhZGRpbmcgdGhhdCANCj4gYXNzZW1ibHkgdG8gbXkgZGF0YWJhc2UsIHdpbGwgdGhhdCBl  
  
dmVuIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHJlZmVyZW5jZSBpbiANCj4gdGhlIFZTIHByb2plY3Q/  
  
DQo+IA0KPiBTb3JyeSBmb3IgYmVpbmcgbG9uZy13aW5kZWQuIEkndmUgZ290IHRvIGJlbGlldmUg  
  
dGhhdCBNUyBrbm93cyBwZW9wbGUgd2FudCANCj4gdG8gZG8gd2hhdCBJJ20gdHJ5aW5nIHRvIGRv  
  
LiBJIGp1c3Qgd2lzaCB0aGUgaG9vcHMgSSdtIGZvcmNlZCB0byBqdW1wIA0KPiB0aHJvdWdoIHdl  
  
cmVuJ3Qgc28gY29udm9sdXRlZCBhbmQgcG9vcmx5IGRvY3VtZW50ZWQuDQo+IA0KPiBUaGFua3Ms  
  
DQo+IA0KPiBEb25uaWUNCj4gDQo+IFAuUy4gSWYgY3Jvc3MtcG9zdGluZyB0byB0aGVzZSBncm91  
  
cHMgaXMgY29uc2lkZXJlZCBiYWQgZm9ybSwgcGxlYXNlIGxldCBtZSANCj4ga25vdy4gDQo+IA0K  
  
Pg==



11/23/2005 11:54:36 PM    VS SQL Server Project - Adding Reference to Microsoft.SqlServer.ManagedDTS.dll
I'm using a VS SQL Server project to create a stored procedure. In that  
  
stored procedure, I want to load an SSIS package, set some of the package  
  
variables, and execute it. From the SSIS reference docs, that looks  
  
straightforward.  
  
To be able to access the Microsoft.SqlServer.Dts.Runtime namespace, I need  
  
to add a reference to the Microsoft.SqlServer.ManagedDTS.dll assembly.  
  
However, when I use the normal "Add Reference" mechanism, only a fixed set  
  
of assemblies are displayed (plus a way to select project assemblies). The  
  
"Browse" capability generally there in other types of projects isn't  
  
available. I've seen some docs to the effect that the hosted CLR purposely  
  
restricts the available framework assemblies.  
  
So the short question is, how do I achieve what I'm trying to do? DTS  
  
packages were available from T-SQL stored procs in SQL Server 2000. I've got  
  
to believe this is possible in SQL Server 2005.  
  
On a more lengthy note, I spent a couple of hours trying to figure out how  
  
to add the Microsoft.SqlServer.ManagedDTS.dll assembly to the database where  
  
I want to deploy my stored proc. The set of permissions in a deployed  
  
assembly includes one called "References" which on the surface implied that  
  
it might give me what I want.  
  
Unfortunately, that ended in failure due to the EXTERNAL ACCESS / UNSAFE  
  
assembly issues. I've spent quite a bit of time trying to figure out the  
  
precise, secure steps to correctly: a) prepare the assembly to be deployed  
  
as either external access or unsafe; b) configure a login / db owner with  
  
the appropriate external access or unsafe permissions to deploy such  
  
assemblies; c) mark a database as trustworthy.  
  
The doc at  
  
http://download.microsoft.com/download/c/c/6/cc66b572-a402-4c6a-8233-b9c7d05840c7/ReadmeSQLEXP2005.htm  
  
seems to come closest to specifying what to do, but it's not complete. Does  
  
the "CREATE ASYMMETRIC KEY" command change the dll that's specified? I don't  
  
want to screw with the Microsoft.SqlServer.ManagedDTS.dll that Microsoft  
  
ships. After I create the login with the key and grant it EXTERNAL ACCESS  
  
ASSEMBLY permissions, what do I do with it and the assembly via the CREATE  
  
ASSEMBLY command? The errors displayed when create assembly fails due to  
  
external access issues mention the database owner, not some login created  
  
with the asymmetric key. Beyond that, if I do succeed in adding that  
  
assembly to my database, will that even make it available to reference in  
  
the VS project?  
  
Sorry for being long-winded. I've got to believe that MS knows people want  
  
to do what I'm trying to do. I just wish the hoops I'm forced to jump  
  
through weren't so convoluted and poorly documented.  
  
Thanks,  
  
Donnie  
  
P.S. If cross-posting to these groups is considered bad form, please let me  
  
know.

11/24/2005 1:30:35 AM    Re: VS SQL Server Project - Adding Reference to Microsoft.SqlServer.ManagedDTS.dll
"Donnie Hale" <dhale@drop-spot.com> wrote in  
  
news:uLd9sML8FHA.3592@TK2MSFTNGP12.phx.gbl:  
  
Yes, when you are using the VS SQL Server Project you are restricted to  
  
what assemblies you can reference. There are various reasons for this (I  
  
don't agree with all of them).  
  
However there are ways around it:  
  
1. Don't use the VS SQL Server Project, but just create a normal class  
  
library project, add references as per usual and then manually create  
  
your assembly through CREATE ASSEMBLY. Make sure your referenced  
  
assemblies are in the same directory as your user assembly. The he  
  
SQLCLR team has just released some code that automatically creates  
  
procs/functions/triggers etc. when you run the CREATE ASSEMBLY code. 3.  
  
If you want to use the VS SQL Server Project you can create the assembly  
  
you want to reference in the database before you try to reference it.  
  
I.e: do a manual CREATE ASSEMBLY against the ManagedDTS.dll 3. Use my  
  
SQL Server VS templates and deploy task (see link at [0]). This gives  
  
you the ability to reference what you want, and still get auto  
  
deployment (a new version is in the works - out in a couple of days).  
  
However, which-ever way to go, be careful with what you are doing. You  
  
do  ot want some code to compromise SQL Server.  
  
b9  
  
OK, the easiest way to be able to create an assembluy as UNSAFE  
  
/EXTERNAL ACCESS you can do this:  
  
1. Mark the database as trustworthy: ALTER DATABASE db_name SET  
  
TRUSTWORTHY ON  
  
2. Give the login of the owner of the database the right permissions:  
  
GRANT EXTERNAL ACCESS ASSEMBLY to somelogin.  
  
That's it. You can now create an assembly as EXTERNAL ACCESS/UNSAFE.  
  
BUT, once again, be careful with what you are doing!!!!  
  
Niels  
  
[0]:  
  
http://staff.develop.com/nielsb/PermaLink,guid,edefd0db-88ef-42cb-8935-  
  
ce  
  
8744388203.aspx (watch out for linebreaks) --  
  
**************************************************  
  
* Niels Berglund  
  
* http://staff.develop.com/nielsb  
  
* nielsb@no-spam.develop.com  
  
* "A First Look at SQL Server 2005 for Developers"  
  
* http://www.awprofessional.com/title/0321180593  
  
**************************************************