1
A
回答
0
您的問題涉及代碼分析或執行分析嗎?
在代碼中,搜索CREATE,ALTER和DROP語句(取決於您的數據訪問層)。
對於執行分析,您可以創建DDL Triggers。
UPDATE評論
閱讀您的評論後後,我認爲最好的辦法是使用SQL Server的許可制度限制用戶交互的能力。
創建數據庫或應用程序角色,將用戶分配給該角色,然後選擇用戶/角色所需的GRANT。在這個新用戶的上下文中運行交互式SQL語句。
這樣你可以設置每個表/視圖/ sp/etc的權限。和每個命令(SELECT/INSERT等),而不需要解析SQL語句。
+0
這是像我應該只允許執行DML語句,以防止可能注入我的數據庫的有害查詢。使用搜索關鍵字會很麻煩。 – Neena
1
-1
運行此代碼,並在其結尾處,您將有一個所有DDL匹配的摘要。每一次都完美無瑕!
string matchedSQL;
//Parse DDL statements
Regex DDL = new Regex(@"(?<=\b(create|alter|drop)\s+(procedure|proc|table|trigger|view|function)\b\s\[dbo\].)\[.*?\]", RegexOptions.IgnoreCase);
Match match = DDL.Match(script);
while (match.Success)
{
matchedSQL += match.Groups[1].Value + " " + match.Groups[2].Value + " " + match.Value;
match = match.NextMatch();
}
相關問題
- 1. LINQ to XML或SQL Server 2005 XML DML?
- 2. FireDAC:Array DML進度
- 3. SQL Server - xml類型列 - XML DML
- 4. SQL Server的dml錯誤日誌記錄
- 5. SQL視圖中的DML語句
- 6. 驗證您的SQL Server DML腳本
- 7. mysql_affect_rows由DDL或DML完成嗎?
- 8. 會選擇由DML
- 9. DML統計,oracle
- 10. Oracle:檢查dml語句
- 11. BigQuery INSERT DML語句限制
- 12. 出口DML與Hibernate
- 13. 函數調用中的DML
- 14. DML查詢執行到SSCE
- 15. SQL Server 2008:使用XML DML重命名元素?
- 16. 帶出日誌記錄的DML操作 - SQL Server
- 17. 類似於DML刪除命令的SQL- DDL命令
- 18. Oracle PL/SQL:從函數調用DML過程
- 19. 如何優化SQL Server 2008中的DML操作
- 20. 如何查找SQL查詢類型是DML還是DDL?
- 21. SQL Server代理作業中的XML DML(修改)
- 22. Oracle DDL/DML腳本,源代碼管理中的PL/SQL
- 23. 如何在遷移中正確添加自定義SQL DML
- 24. 在azure SQL中跨數據庫DML查詢
- 25. 顯示數據庫語句是DDL,DML或其他?
- 26. 添加約束是DDL還是DML
- 27. 使用Python中的cx_Oracle解析PL/SQL和DML/DDL的SQL文件
- 28. 桌上的DML統計
- 29. DML操作不支持Exceptiom
- 30. 授予DML和DBA權限
否 - 鍵盤上的人形生物需要根據查詢中的內容來決定... –
您是否問C#SQL解析器是否存在? –
請參閱:http://stackoverflow.com/questions/589096/parsing-sql-code-in-c-sharp –