-
Notifications
You must be signed in to change notification settings - Fork 111
Expand file tree
/
Copy pathtSQLt.EnableExternalAccess.ssp.sql
More file actions
44 lines (44 loc) · 1.03 KB
/
tSQLt.EnableExternalAccess.ssp.sql
File metadata and controls
44 lines (44 loc) · 1.03 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
IF OBJECT_ID('tSQLt.EnableExternalAccess') IS NOT NULL DROP PROCEDURE tSQLt.EnableExternalAccess;
GO
---Build+
GO
CREATE PROCEDURE tSQLt.EnableExternalAccess
@try BIT = 0,
@enable BIT = 1
AS
BEGIN
IF((SELECT HostPlatform FROM tSQLt.Info()) = 'Linux')
BEGIN
IF(@try = 0)
BEGIN
RAISERROR('tSQLt.EnableExternalAccess is not supported on Linux.',16,10);
END;
RETURN -1;
END;
BEGIN TRY
IF @enable = 1
BEGIN
EXEC('ALTER ASSEMBLY tSQLtCLR WITH PERMISSION_SET = EXTERNAL_ACCESS;');
END
ELSE
BEGIN
EXEC('ALTER ASSEMBLY tSQLtCLR WITH PERMISSION_SET = SAFE;');
END
END TRY
BEGIN CATCH
IF(@try = 0)
BEGIN
DECLARE @Message NVARCHAR(4000);
SET @Message = 'The attempt to ' +
CASE WHEN @enable = 1 THEN 'enable' ELSE 'disable' END +
' tSQLt features requiring EXTERNAL_ACCESS failed' +
': '+ERROR_MESSAGE();
RAISERROR(@Message,16,10);
END;
RETURN -1;
END CATCH;
RETURN 0;
END;
GO
---Build-
GO