SQLServer数据库权限审查报告设计与实现

本文介绍了一种使用Python进行SQL SERVER数据库权限审计的方法,通过编写SQL查询语句获取权限信息,结合Python连接数据库并生成HTML报告,最后通过邮件定时发送给BusinessOwner。这种方法能确保权限审核的持续性和准确性,适用于数据库的常规操作自动化,如权限监控、空间报警等。

作为IT安全审计的一部分,数据库权限审核也应该包括在其中。一般情况下,数据库管理员应该定期发送权限报告给相关人员审核,确保这是一个持续性完善的过程。

当然,作为持续性改善计划,肯定需要python来自动化实现了,人都是有惰性,谁能保证一直做下来不出错?

下面跟大家分享一下笔者通过python实现SQL SERVER数据库权限审计的方法吧。

先分享一下报告的主要审核点,一般而言,权限审计,审的就是哪个权限,对应有哪些人之类的。

 

 

从上图可以看出,在数据库中对用户赋予了权限,都可以清楚的看出来,然后定期的发送给对应Business Owner即可。

设计方法如下:

  1. 准备好相关的SQL语句,能够查询到相关权限,语句如下:

select DbRole = g.name, MemberName = u.name, MemberSID = u.sid from sys.database_principals u, sys.database_principals g, sys.database_role_members m  where g.principal_id = m.role_principal_id  and u.principal_id = m.member_principal_id order by 1, 2

 

在这个语句中,可以手工查询到指定数据库的用户权限。

 

  1. 使用python连接数据库,执行步骤1中的语句,返回执行结果。
  2. 设计报告模板,讲步骤2中返回的结果写入报告模板中。报告模板为html格式,返回结果需要进行html转换,作为一个固定的格式报告,使用table即可。
  3. 通过邮件发送给指定用户,同时在系统里面设计一个计划任务,就可以实现定时发送。

 

备注:如果涉及到sql connectionstring的密码问题,可以将py文件通过pyinstaller进行打包。当然如果要求更高的话,就需要加密打包,通过外部python模块来实现了。

 

 

小结:这个方法感觉是不是很简单?其实对数据库的常规操作都可以通过这样的方式实现自动化,比如数据库大小监控,当然,如果有整体的性能监控除外。也可以实现数据库空间报警等,具体的就看大家的需求了,思路是一样的。盖以抛砖引玉,希望能有更多的延伸。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值