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 –