sql审核工具
① 金蝶K3可以在数据库把审核的单据删除或者反审核吗可以的话sql语句怎么写
软件如果自带删除,或者反审核功能的话洞高,最好在软件中进行操作,不用直接用sql,因为相关操作会关联其他的闹冲操作,直接在数据库用sql修改,可纳弯尺能会产生数据不同步问题
② SQL Server中安全审核级别
审核就是记日志
无表示不记日志
成功表示成功升亩键的登录记日耐侍志
失败表吵巧示失败的登录记日志
全部就是所有的登录操作都记日志
WIN2000的话在管理工具->事件查看器中看
③ sql server 2005 怎么开启C2审核策略
在ssms中右键点服务器属性
在安全性中选择启动C2审核跟踪
④ SQL审核 | SQLE-SQL审核平台体验报告
通过SQLE的产品结构图我们可以看到,SQLE 的界面设计较简洁,工作台可以看到与自己相关的待办工作;首页列表放置核心功能【工单】审核,其它功能收集到平台管理中;【规则】可以考虑收入到【平台管理】中;【审核计划】也可以考虑收入到【平台管理】中,审核的结果可以集成到工单中,方便统一进行处理。
通过 SQLE 的流程图可以看到,整体流程分为两个两个部分,一个是基础配置,配置好了基础配置以后,就可以执行上线流程了;对于审核不合格的功能依旧可以执行工单,没有起到自动审核的意义,对于ERROR级别的错误可以自动驳回不与上线;进入工单页唯派盯面后不能很好的发现审核操作按钮(工单进度部分),需要下拉窗口才能发现;可以把审核操作放羡渗到审核结果列表后面加一个操作列,体验会更加友好指和。下图为缩放67%后才能看到下面的审核操作.
(1)创建SQL工单-SQL语句不支持输入联想,建议增加输入联想,提高录入效率
(2)创建SQL工单-SQL语句对于明显语法错误不能及时提示,建议增加语法错误提示,提前发现明显问题
(3)创建SQL工单-SQL语句输入框高度过高,点击审核后不方便查看到结果,建议降低高度增加宽度
(4)创建SQL工单-工单不支持自定义上线时间,同时也不支持定时上线
由于时间有限,仅是个人测试体验;SQLE 整体设计不错,符合现在主流平台的各方面特征;主要几个设计点我比较喜欢:
⑤ 如何开启sqlserver2008数据库审计功能
SQLSERVER2008新增的审核功能
在sqlserver2008新增了审核功能,可以对服务器级别和数据库级别的操作进行审核/审计,事实上,事件通知、更改跟踪、变更数据捕获(CDC)
都不是用来做审计的,只是某些人乱用这些功能,也正因为乱用这些功能导致踩坑
事件通知:性能跟踪
更改跟踪:用Sync Services来构建偶尔连接的系统
变更数据捕获(CDC):数据仓库的ETL 中的数据抽取(背后使用logreader)
而审核是SQLSERVER专门针对数据库安全的进行的审核,记住,他是专门的!
我们看一下审核的使用方法
审核对象
步骤一:创建审核对象,审核对象是跟保存路径关联的,所以如果你需要把审核操作日志保存到不同的路径就需要创建不同的审核对象
我们把审核操作日志保存在文件系统里,在创建之前我们还要在相关路径先创建好保存的文件夹,我们在D盘先创建sqlaudits文件夹,然后执行下面语句
--创建审核对象之前需要切换到master数据库
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(FILEPATH='D:\sqlaudits') --这里指定文件夹不能指定文件,生成文件都会保存在这个文件夹
GO
实际上,我们在创建审核对象的同时可以指定审核选项,下面是相关脚本
把日志放在磁盘的好处是可以使用新增的TVF:sys.[fn_get_audit_file] 来过滤和排序审核数据,如果把审核数据保存在Windows 事件日志里查询起来非常麻烦
USE [master]
GO
CREATE SERVER AUDIT MyFileAudit TO FILE(
FILEPATH='D:\sqlaudits',
MAXSIZE=4GB,
MAX_ROLLOVER_FILES=6)
WITH (
ON_FAILURE=CONTINUE,
QUEUE_DELAY=1000);
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
MAXSIZE:指明每个审核日志文件的最大大小是4GB
MAX_ROLLOVER_FILES:指明滚动文件数目,类似于SQL ERRORLOG,达到多少个文件之后删除前面的历史文件,这里是6个文件
ON_FAILURE:指明当审核数据发生错误时的操作,这里是继续进行审核,如果指定shutdown,那么将会shutdown整个实例
queue_delay:指明审核数据写入的延迟时间,这里是1秒,最小值也是1秒,如果指定0表示是实时写入,当然性能也有一些影响
STATE:指明启动审核功能,STATE这个选项不能跟其他选项共用,所以只能单独一句
在修改审核选项的时候,需要先禁用审核,再开启审核
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
ALTER SERVER AUDIT MyFileAudit WITH(QUEUE_DELAY =1000)
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
审核规范
在SQLSERVER审核里面有审核规范的概念,一个审核对象只能绑定一个审核规范,而一个审核规范可以绑定到多个审核对象
我们来看一下脚本
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
CREATE SERVER AUDIT MyAppAudit TO APPLICATION_LOG
GO
ALTER SERVER AUDIT MyAppAudit WITH(STATE =ON)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyAppAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
我们创建一个服务器级别的审核规范CaptureLoginsToFile,然后再创建多一个审核对象MyAppAudit ,这个审核对象会把审核日志保存到Windows事件日志的应用程序日志里
我们禁用审核规范CaptureLoginsToFile,修改审核规范CaptureLoginsToFile属于审核对象MyAppAudit ,修改成功
而如果要把多个审核规范绑定到同一个审核对象则会报错
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileA
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFileB
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
--消息 33230,级别 16,状态 1,第 86 行
--审核 'MyFileAudit' 的审核规范已经存在。
这里要说一下 :审核对象和审核规范的修改 ,无论是审核对象还是审核规范,在修改他们的相关参数之前,他必须要先禁用,后修改,再启用
--禁用审核对象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =OFF)
--禁用服务器级审核规范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=OFF)
GO
--禁用数据库级审核规范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=OFF)
GO
--相关修改选项操作
--启用审核对象
ALTER SERVER AUDIT MyFileAudit WITH(STATE =ON)
--启用服务器级审核规范
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE=ON)
GO
--启用数据库级审核规范
ALTER DATABASE AUDIT SPECIFICATION CaptureDBLoginsToFile WITH (STATE=ON)
GO
审核服务器级别事件
审核服务级别事件,我们一般用得最多的就是审核登录失败的事件,下面的脚本就是审核登录成功事件和登录失败事件
CREATE SERVER AUDIT SPECIFICATION CaptureLoginsToFile
FOR SERVER AUDIT MyFileAudit
ADD (failed_login_group),
ADD (successful_login_group)
WITH (STATE=ON)
GO
修改审核规范
--跟审核对象一样,更改审核规范时必须将其禁用
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =OFF)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile
ADD (login_change_password_gourp),
DROP (successful_login_group)
ALTER SERVER AUDIT SPECIFICATION CaptureLoginsToFile WITH (STATE =ON)
GO
审核操作组
每个审核操作组对应一种操作,在SQLSERVER2008里一共有35个操作组,包括备份和还原操作,数据库所有权的更改,从服务器和数据库角色中添加或删除登录用户
添加审核操作组的只需在审核规范里使用ADD,下面语句添加了登录用户修改密码操作的操作组
ADD (login_change_password_gourp)
这里说一下服务器审核的内部实际上使用的是SQL2008新增的扩展事件里面的其中一个package:SecAudit package,当然他内部也是使用扩展事件来收集服务器信息
审核数据库级别事件
数据库审核规范存在于他们的数据库中,不能审核tempdb中的数据库操作
CREATE DATABASE AUDIT SPECIFICATION和ALTER DATABASE AUDIT SPECIFICATION
工作方式跟服务器审核规范一样
在SQLSERVER2008里一共有15个数据库级别的操作组
7个数据库级别的审核操作是:select ,insert,update,delete,execute,receive,references
相关脚本如下:
--创建审核对象
USE [master]
GO
CREATE SERVER AUDIT MyDBFileAudit TO FILE(FILEPATH='D:\sqldbaudits')
GO
ALTER SERVER AUDIT MyDBFileAudit WITH (STATE=ON)
GO
--创建数据库级别审核规范
USE [sss]
GO
CREATE DATABASE AUDIT SPECIFICATION CaptureDBActionToEventLog
FOR SERVER AUDIT MyDBFileAudit
ADD (database_object_change_group),
ADD (SELECT ,INSERT,UPDATE,DELETE ON schema::dbo BY PUBLIC)
WITH (STATE =ON)
我们先在D盘创建sqldbaudits文件夹
第一个操作组对数据库中所有对象的DDL语句create,alter,drop等进行记录
第二个语句监视由任何public用户(也就是所有用户)对dbo架构的任何对象所做的DML操作
创建完毕之后可以在SSMS里看到相关的审核
⑥ sql server 2008 状态字段 已审核未审核 怎么设置
启动SQL Server 2008 Management Studio“工具菜单—>选项蔽差”打开选项对话框
左侧目录树选择“设计器”取消勾选右侧“阻止保存要求重新创建表的更改”即可。
在其他版本的“设计器”项为英文“吵则designers”
4
点击确定就设置好了,用CTRL+S就可以正常保存表结构的宏碰皮更改了。
⑦ 如何通过SQL语句设置数据库登录审核的状态
刚好上次讲三层架构.有现成的例子
以一个验证登陆为例子
这里是界面层一般叫UIL
protected void Button1_Click(object sender, EventArgs e)
{
List<User> Users = BAL.GetUserInfo(txtUserName.Text,txtPassword.Text);
if(Users.Length > 0)
{
Response.Write("登陆成功");
}
else
{
Response.Write("登陆失败");
}
}
以下是逻辑层代码,业务逻辑层一般叫BLL
public static List<User> GetUserInfo(string user,string password)
{
string newPassword = GetMD5Hash(password); //这里对密码进行加密处理,数据库中存放的是经过MD5加密后的密,业务逻辑层一般都是处理复杂的逻辑.例如加密逻辑
List<User> Users = DAL.GetUserInfo(user,newPassword);
return Users;
}
以下是数据访问层代码,数据访问层一般叫DAL
public static List<User> GetUserInfo(string user,string password)
{
List<User> Users = new List<User>();
string sql = "select * from User where Password = '"+password+"' and User = '"+user+"'"; //写where子句的时候把Password放前面.因为Password经过加密,所以可以防止SQL注入攻击
SqlDataAdapter da = new SqlDataAdapter(sql,"这里是数据库连接字符串");
DataSet ds = new DataSet();
da.Fill(ds);
for(int i=0;i<ds.Tables[0].Rows.Count;i++)
{
User user = new User(ds.Tables[0].Rows[i]["ID"].ToString(),ds.Tables[0].Rows[i]["User"].ToString(),ds.Tables[0].Rows[i]["Password"].ToString());
Users.Add(user);
}
return Users;
}
还会有一个Model层.叫做模板层.是数据表结构的印射.Model层是共用层,其他三层都要用到.
比如数据库中有张表User,里面有3个字段ID,User,Password
那么在模板层中应该有一个类,数据库中User表的一行对应一个User对象,一张表对应User对象的集合.
public class User
{
string ID;
string User;
string Password;
//重载构造函数
User(string id,string user,string password)
{
this.ID=id;
this.User=user;
this.Password=password;
}
}
⑧ sql如何写查询单据创建者审核者修改者
1、首先打开定电脑,点开一个写sql的软件。
2、其次点击设置,找到写查询单据的位置,点击编辑。
3、最后可以在右边看到这个创建者审核者租信修改弊闷轮者,是罩世非常的方便的。
⑨ 详解Yearning SQL审核平台功能模块设计
Yearning SQL审核平台目前兼容99%的Mysql 标准SQL语法。
已知不支持的语句类型有:
下面对其中的功能模块做一下介绍,以下基于Yearning 2.0版本。
1、dashboard
dashboard主要展示Yearning各项数据包括用户数/数据源数/工单数/查询数以及其他图表,个人信息栏内用户可以修改密码/邮箱/真实姓名,同时可以查看该用户权限以及申请权限。
2、我的工单
展示用户提交的工单信息,对于执行失败/驳回的工单点击详细信息后可以重新修改sql并提交,对于执行成功的工单可以查看回滚语句并且快速提交SQL
3、工单-DDL
具有以下功能:
1)DDL相关SQL提交审核
2)查看表结构/索引
3)SQL语法高亮/自动补全
如果想获取表结构详细信息,必须选填表名并完整填写工单信息。所有的SQL只有在检测后错误等级为0时提交按钮才会激活,如下拉列表框内没有相关数据源显示请联系管理员是否赋予相应数据源权限
4、工单--DML
具备以下功能:
1)DML相关SQL提交审核
2)SQL语法高亮/自动补全
所有的SQL只有在检测后错误等级为0时提交按钮才会激活,如下拉列表框内没有相关数据源显示请联系管理员是否赋予相应数据源权限
5、查询
具备以下功能:
1)查询/导出数据
2)SQL语法高亮/自动补全
3)快速DML语句提交
如果开启查询审核,提交该查询申请后需对应审核人同意后方可查询,超级管理员在设置页面开启数据导出功能后,查询申请页面才会显示数据导出按钮(默认为.csv格式),获取表结构功能必须点击相应表名此为前置条件,快速提交功能仅支持DML语句,如下拉列表框内没有相关数据源显示请联系管理员是否赋予相应数据源权限
1、工单审核
功能:DDL/DML管理员审核并执行
实时刷新开关默认打开,如需删除记录请先关闭该开关。如定时工单的时间小于当前时间,执行该工单将会立即执行,目前仅支持延时工单中止,其他工单执行后无法中止!
2、查询审核
功能:用户查询审核
点击全部中止按钮将会中止所有用户的查询权限 如没有在设置页面开启查询审核备蔽开关,则默认用户查询申请提交后自动获得查询权限。 用户查询时限在设置页面进行设置
3、权限审核
功能:用户权限审核
权限由用户在首页个人信息处自主申请,管理员可在该审核页面决定是否给予用户申请的权限,由于用户可能存在胡乱申请权限的问题,所以 管理员在查看用户权限申请工单的同时可对工单申请的权限进行修改,确定具体的权限给予 。
1、工单审计
主要是审计工单的执行情况,记录工单的执行时间、申请人、执行人等信息。
2、查询审计
针对数据库查询记录做审计
1、用户
功能:创建/修改/删除用户
当多级审核关闭后系统并不会自动将角色为执行人的用户重置角色,需要自行重置相应用户角色
2、数据库
功能:添加/编辑/删除 数据源
所有添加的数据源应在添加之前点击测试连接按钮进行连接性测试,保证连接性。慎隐
数据源分为 查询数据源/非查询数据源 。查询数据源仅会出现在细粒度权限的查询数据源范围内。非查询数据源同理。(对于查询与执行数据源应拆分为二,保障线上执行数据源不会因为查询慢sql影响业务),此类别添加后 无法通过编辑进行修改 ,需要慎重添加。
3、用户权限
功能:用户权限修改/清空
批量赋权仅支持角色为使用人的用户。由于批量赋权为覆盖更新,仅适合在用户权限为空时使用。
4、设置
功能:
在配置填写无误后点击测试按钮进行相关测试, 使用消息推送前必须先打开对应消息推送开关,否则Yearning不会进行推送
5、审核仿孝州规则
功能:设置SQL检测规则
保存后即时生效
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
⑩ 详解Yearning SQL审核平台权限规划--基于用户的细粒度权限
Yearning的权限规范还是挺有特点的,这里简单记录一下,仅供参考。
Yearning采用基于用户的细粒度权限/角色权限,权限最低下放至数据源。
Yearning中神孙唤用户先以角色的形式分为三大类,分别为 使用者/管理员/执行人。其中管理员/执行人角色为可见管理页面角色, 使用者为非可见管理页面角色。通过角色Yearning在细粒度权限划分之前先将用户分类。使管理类权限不会出现在使用者细粒度权限划分中
可根据每个用户的实际需求配置相应ddl/dml/查询数据源。每一类权限相互独立互不干扰。
基于用户的拼图式权限可最大化保证细粒度权限的多样化,可实现对每一个用户都设置不同权限的目的。
用户界面如下:
数据库界面如下:
这里其实就是把用户跟数据库,用户跟具体权限,用户和上级审核人做一个绑凯知定关系。
权限界面如下:
4.1、基于用户自主申请
在Yearning中用户可通过 首页个人信息栏-查看权限按钮 查看当前权限并可通过 申请权限按钮 提交权限申请。
该权限申请将会以工单的形式发送给超级管理员进行审批。(超级管理员为admin用户)如开启消息推送,该工单将会进行相应推送。
当超级管理员收到申请之后,可对相应权限工单进行 审阅/修改 。由于用户申请的权限可能并非实际应授予的权限。所以超级管理员可对权限工单进行直接修改,新增/删除相应权游凯限。修改确认无误后点击同意,该用户权限将自动更新。
4.1.1、权限申请
4.1.2、管理员审核
4.1.3、同意或驳回
注意:
为了防止用户过度提交权限申请。Yearning强制规定用户只有在之前的权限申请通过/驳回之后才能提交新的权限申请。
权限工单为 覆盖更新 并非增量更新,用户提交时因把 之前的权限与申请的权限 一起提交
同时超级管理员也可在 设置页面 设置每个用户单日最大权限申请数。 设置后每个用户一天之内申请权限次数不得超过设置的阈值
4.2 超级管理员直接修改
在Yearning中超级管理员可自行对任意用户的权限进行修改,如需修改 ,可以在用户权限页面进行相应设置
4.2.1、单个用户授权
4.2.2、普通用户批量授权
4.2.3、清空权限
后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~