What's a "SAND BOX" in SQL Server 2005?

Here's a general definition of sand box:-
"Sandbox is a safe place for running semi-trusted programs or scripts, often originating from a third party."
Now for SQL Server it's .NET the external third party which is running and SQL Server has to ensure that .NET runtime crashes does not affect his working. So in order that SQL Server runs properly there are three sandboxes that user code can run :-
=>Safe Access sandbox
This will be the favorite setting of DBA's if they are compelled to run CLR - Safe access. Safe means you have only access to in-proc data access functionalities. So you can create stored procedures, triggers, functions, data types, triggers etc. But you can not access memory, disk, create files etc. In short you can not hang the SQL Server.
=>External access sandbox
In external access you can use some real cool features of .NET like accessing file systems outside the box, you can leverage your classes etc. But here you are not allowed to play around with threading , memory allocation etc.
=>Unsafe access sand box
In Unsafe access you have access to memory management, threading etc. So here developers can write unreliable and unsafe code which destabilizes SQL Server. In the first two access levels of sand box its difficult to write unreliable and unsafe code.

0 comments:

Post a Comment

Blogger news