CLR integration默認禁用。我對instructions的理解意味着它對整個服務器都是啓用或禁用的。是否有可能在每個數據庫的基礎上啓用它?如果是這樣,怎麼樣?如何爲Microsoft SQL Server中的特定數據庫啓用CLR集成?
回答
啓用「CLR集成」是僅服務器/實例級選項;它不能單獨處理每個數據庫。但是,雖然我不確定爲什麼要按每個數據庫處理此問題,但您可以在數據庫中始終使用DENY CREATE ASSEMBLY
,因爲您不希望使用自定義SQLCLR代碼。
UPDATE
我只是測試DENY CREATE ASSEMBLY TO [Public];
,這不會爲是sysadmin
固定服務器角色成員的註冊工作。所以有效的另一種方式拒絕某個動作的權限是通過DDL Trigger來捕獲該動作,併發出將取消動作的ROLLBACK
。
下面是一個DDL觸發器,可以在任何數據庫中,就是在和陷阱,同時創建CREATE ASSEMBLY
和ALTER ASSEMBLY
報表工作,但仍允許DROP ASSEMBLY
(使用DDL_ASSEMBLY_EVENTS
作爲事件組將禁止所有三個動作):
USE [db_name];
GO
CREATE TRIGGER [PreventCreateAssembly]
ON DATABASE
AFTER ALTER_ASSEMBLY, CREATE_ASSEMBLY -- DDL_ASSEMBLY_EVENTS
AS
RAISERROR(N'Cannot CREATE or ALTER Assemblies!', 16, 1);
ROLLBACK;
GO
有了這個DDL觸發器的地方,當我試圖創建大會,現在我收到以下錯誤,即使我的登錄是sysadmin
:
消息50000,級別16,狀態1,Procedure PreventCreateAssembly,Line 59
無法創建或修改程序集!
消息3609,級別16,狀態2,行54
事務在觸發器中結束。該批次已被中止。
當然,這不會阻止sysadmin角色中的登錄禁用觸發器,但如果這是您遇到的問題,那麼您的問題就不再是技術問題了。 –
@BaconBits True和True。儘管如此,沒有任何辦法可以防止「sysadmin」做任何事情:打開/關閉「CLR集成」或重新授予「CREATE ASSEMBLY」有效。我認爲這裏的好處是,至少像自動推出腳本(作爲'sysadmin'運行)將被阻止,如果只允許將公共組件創建到公共目錄,那麼它將被允許。 –
- 1. 在SQL Server 2008-R2上啓用CLR集成
- 2. SQL查詢數據庫的Microsoft SQL Server
- 3. SQL Server 2012數據集成
- 4. 的Microsoft SQL Server 2014數據庫錯誤
- 5. ASP.Net MVC Microsoft集成用戶數據庫
- 6. 通過用戶輸入使用特定的sql server數據庫
- 7. 如何更新Microsoft SQL Server Management Studio中的數據庫圖表
- 8. 爲SQL Server集羣準備數據庫
- 9. 如何在SQL Server數據庫中查找特定列?
- 10. Sql Server CLR函數
- 11. 如何停止使用Microsoft SQL Server 2005恢復數據庫?
- 12. 如何在Microsoft SQL Server Management Studio中添加新數據庫?
- 13. SQL Server CLR函數集超時
- 14. 如何在Microsoft SQL Server 2014中使用特定模式
- 15. Microsoft SQL Server的XML數據
- 16. 將Microsoft Access數據庫上載到Microsoft SQL Server Express數據庫中
- 17. 如何將數據源更改爲Visual C#中的Microsoft SQL Server?
- 18. 如何從SQL Server中的Microsoft Access數據庫中選擇數據?
- 19. SQL SERVER中的CLR
- 20. 將實體框架CLR DLL添加到SQL Server數據庫
- 21. 在MVC3 Web應用程序中集成C#SQL CLR數據庫項目?
- 22. 複製Microsoft SQL Server中不同數據庫的數據表
- 23. 如何將SQL Server數據庫加載到數據集中?
- 24. 爲sql server生成TPC-DS數據庫
- 25. 在SQL Server 2005中爲特定數據庫分配證書
- 26. 如何在將CLR擴展集成到SQL Server時引用GAC程序集
- 27. 如何初始化現有的Microsoft SQL Server數據庫?
- 28. 如何確保Microsoft SQL Server中的特定字符編碼?
- 29. 爲什麼SQL Server沒有預裝.NET Framework for CLR集成?
- 30. 使用mathnet-numerics作爲SQL Server中的CLR程序集
不,這是一個實例級選項。 沒有選項爲特定數據庫啓用它。 –
[在數據庫級別或服務器/實例級別啓用「CLR集成」的可能重複嗎?](http://stackoverflow.com/questions/30871314/is-clr-integration-enabled-at-a-database-級或最服務器實例級)。 –