【求助】请教大佬:如何禁用SQLServer2008R2的部分系统函数?尤其是元数据函数?

weixin_39830844 2019-03-08 09:45:55
目前情况是为了防御sql注入带来的危害,防止攻击通过合法查询将项目拖库,我拒绝了登录名在master库中的查询请求。这样就不能使用以下几个语句访问元数据:
select * from master.sys.sysdatabases
select * from sysobjects where xtype='U'
select * from syscolumns

然后我发现没有任何一个权限可以不让用户在查询中调用系统函数,这样用户就可以通过以下三个函数将项目中所有的库、表、字段枚举出来

select DB_NAME(int)
select OBJECT_NAME(int)
select COL_NAME(int,int)


这不是完全拦不住吗,虽然object的ID可以达到几十亿,但最多几天的时间也够枚举完毕了。

真心求教,如何禁用或者删除部分系统函数,尤其是这些元数据函数
...全文
45 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧