sql追溯
❶ 数据库审计系统是什么,有什么作用
数据库审计是对数据库访问行为进行监管的系统,一般采用旁路部署的方式,通过镜像或探针的方式采集所有数据库的访问流量,并基于sql语法、语义的解析技术,记录下数据库的所有访问和操作行为,例如访问数据的用户(IP、账号、时间),操作(增、删、改、查)、对象(表、字段)等。数据库审计系统的主要价值有两点,一是:在发生数据库安全事件(例如数据篡改、泄露)后为事件的追责定责提供依据;二是,针对数据库操作的风险行为进行时时告警。
二、数据库审计怎么审?
1、数据库访问流量采集
流量采集是数据库审计系统的基础,只有做到数据库访问流量的全采集,才能保证数据库审计的可用性和价值,目前主要的流量采集方式主要有两种:
镜像方式:采用旁路部署通过镜像方式获取数据库的所有访问流量。一般适用于传统IT架构,通过镜像方式将所有访问数据库的流量转发到数据库审计系统,来实现数据库访问流量的获取。
探针方式:为了适应“云环境”“虚拟化”及“一体机”数据库审计需求,基于“探针”方式捕获数据库访问流量。适用于复杂的网络环境,在应用端或数据库服务器部署Rmagent组件(产品提供),通过虚拟环境分配的审计管理网口进行数据传输,完成数据库流量采集。
探针式数据采集,还可以进行数据库本地行为审计,包括数据库和应用系统同机审计和远程登录后的客户端行为。
2、语法、语义解析
SQL语法、语义的解析技术,是实现数据库审计系统可用、易用的必要条件。准确的数据库协议解析,能够保障数据库审计的全面性与易用性。全面的审计结果应该包括:访问数据库的应用层信息、客户端信息、数据库信息、对象信息、响应信息、登录时间、操作时间、SQL响应时长等;高易用性的数据库审计产品的审计结果和报告,应该能够使用业务化的语言呈现出对数据库的访问行为,例如将数据库中的要素客户端IP、数据库用户、SQL 操作类型、数据库表名称、列名称、过滤条件变成业务人员熟悉的要素:办公地点、工作人员名称、业务操作、业务对象、业务元素、某种类别的业务信息。这样的是审计结果呈现即便是非专业的DBA或运维人员的管理者或业务人员也能够看懂。
三、数据库审计的价值?
1、数据库相关安全事件的追溯与定责
数据库审计的核心价值是在发生数据库安全事件后,为追责、定责提供依据,与此同时也可以对数据库的攻击和非法操作等行为起到震慑的作用。数据库自身携带的审计功能,不仅会拖慢数据库的性能,同时也有其自身的弊端,比如高权限用户可以删除审计日志,日志查看需要专业知识,日志分析复杂度高等。独立的数据库审计产品,可以有效避免以上弊端。三权分立原则可以避免针对审计日志的删除和篡改,SQL语句解析技术,可以将审计结果翻译成通俗易懂的业务化语言,使得一般的业务人员和管理者也能看懂。
2、数据库风险行为发现与告警
数据库审计系统还可以对于针对数据库的攻击和风险操作等进行实时告警,以便管理人员及时作出应对措施,从而避免数据被破坏或者窃取。这一功能的实现主要基于sql的语句准确解析技术,利用对SQL语句的特征分析,快速实现对语句的策略判定,从而发现数据库入侵行为、数据库异常行为、数据库违规访问行为,并通过短信、邮件、Syslog等多种方式实时告警。
3、满足合规需求
满足国家《网络安全法》、等保规定以及各行业规定中对于数据库审计的合规性需求。并可根据需求形成不同的审计报表,例如:综合报表、合规性报表、专项报表、自定义报表等。
❷ SQL 重复循环查询或追溯查询问题
--SQLSERVER用递归
WITHTTAS
(SELECTNO1,NO2,NAME,STYLE,NO1ASF1,1ASF2
FROMA
WHERENO1NOTIN(SELECTNO2FROMA)
UNIONALL
SELECTA.NO1,A.NO2,A.NAME,A.STYLE,F1,F2+1ASFLEVEL
FROMA,TT
WHEREA.NO1=TT.NO2)
SELECTF1ASNO1,NO2,NAME,STYLE
FROMTTT1
WHEREEXISTS(SELECT1
FROM(SELECTF1,MAX(F2)ASF2FROMTTGROUPBYF1)T2
WHERET1.F1=T2.F1
ANDT1.F2=T2.F2)
ORDERBYNAME
❸ SQL数据库还原问题,很急,求帮助
估计是SQL server的备份文件,
你在查询分析器中执行下面的语句检查一下就知道了:
restore verifyonly from disk='c:\你的文件'
还原的话,到企业管理器里面去还原(不过你的文件这么小,不知道是否完全备份,如果不是完全备份,则不可还原)
还原数据库
企业管理器
--右键"数据库"
--所有任务
--还原数据库
--"还原为数据库库"中输入还原后的数据库名
--还原选择"从设备"--选择设备--添加--添加你的备份文件--确定,回到数据库还原的界面
--备份号--选择内容--选择你要恢复那次备份的内容
--选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名
--如果要还原的数据库已经存在,选择"在现有数据库上强制还原"-
-确定
如果不可以用上面的方法还原,说明这个备份文件不是完全备份
❹ SQL 追溯查询写个视图表,
SQL Server 2005:
架构dbo的所有表
select t.[name] as tablename, s.[name] as [schema] from sys.tables as t,sys.schemas as s where t.schema_id = s.schema_id
and s.[name] = 'dbo'
架构dbo的所有视图
select v.[name] as viewname, s.[name] as [schema] from sys.views as v,sys.schemas as s where v.schema_id = s.schema_id
and s.[name] = 'dbo'
❺ 想在查询里面把排班班次表的班次相对应到打卡时间上,请问各位大神如何写SQL语句谢谢!!!
我以前搞过考勤系统。我把大概的思路说下,希望对你有帮助。
1,建立设定班别的table
2,增加班别的迟到早退时间栏位(小时,分钟)
3,写一个function,传入刷卡小时和分钟,当天班别。比较刷卡时间和班别的迟到早退时间,返回1(真)和0(假)(根据班别,查询出对应的迟早早退时间。第一笔卡比较迟到,最后一笔卡比较早退)
4,区分这比卡是当天的,还是昨天的,如果是昨天的要追溯到昨天
5,写一个function,传入工号,日期,获得该员工当天的班别
6,select 刷卡表,将迟到早退的function范围值为1的记录都找出来
❻ 如何追溯 PostgreSQL 慢查询当时的状态
在已经安装了PostgreSQL的Linux上,使用下面的命令即可查询安装的版本:
psql --version
PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,现在已经更名为PostgreSQL,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。PostgreSQL支持大部分 SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、MVCC。同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的数据类型、函数、操作符、聚集函数、索引。免费使用、修改、和分发 PostgreSQL,不管是私用、商用、还是学术研究使用。
❼ SQL Server数据库,最通俗的解释就是你入库的单保存在数据库上,以便以后要找某张单子可以从数据库里找出
sql sever 数据库系统是微软公司开发的一套数据库系统。
数据库的概念如下
严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。在经济管理的日常工作中,常常需要把某些相关的数据放进这样的“仓库”,并根据管理的需要进行相应的处理。例如,企业或事业单位的人事部门常常要把本单位职工的基本情况(职工号、姓名、年龄、性别、籍贯、工资、简历等)存放在表中,这张表就可以看成是一个数据库。有了这个"数据仓库"我们就可以根据需要随时查询某职工的基本情况,也可以查询工资在某个范围内的职工人数等等。这些工作如果都能在计算机上自动进行,那我们的人事管理就可以达到极高的水平。此外,在财务管理、仓库管理、生产管理中也需要建立众多的这种"数据库",使其可以利用计算机实现财务、仓库、生产的自动化管理。 J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。
定义2
数据库是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。
定义3
(伯尔尼公约议定书专家委员会的观点) 所有的信息(数据率档)的编纂物,不论其是以印刷形式,计算机存储单元形式,还是其它形式存在,都应视为“数据库”。 数字化内容选择的原因有很多,概括起来主要有: (1)存储空间的原因。数字化的产品是通过网络被广大用户存取利用,而大家都知道数字化产品是存放在磁盘阵列上的,磁盘阵列由服务器来管理,磁盘空间是有限的,服务器的能力也是有限的,不可能无限量地存入数字资源,这就需要我们对文献资源数字化内容进行选择。 (2)解决数字化生产高成本和图书馆经费有限性之间矛盾的需要。几乎没有图书馆有充足的资源来对整个馆藏进行数字化,内容选择不可避免。 (3)数字资源管理的需要。技术的快速发展使数字化项目所生成的数字资源的生命周期越来越短,投入巨资进行数字迁移是延长数字资源生命的1个重要途径,昂贵的维护成本就必须考虑数字化的内容选择。 数据库发展史数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。30年间数据库领域获得了三次计算机图灵奖(C.W. Bachman,E.F.Codd, J.Gray),更加充分地说明了数据库是一个充满活力和创新精神的领域。就让我们沿着历史的轨迹,追溯一下数据库的发展历程。 传统上,为了确保企业持续扩大的IT系统稳定运行,一般用户信息中心往往不仅要不断更新更大容量的IT运维软硬件设备,极大浪费企业资源;更要长期维持一支由数据库维护、服务器维护、机房值班等各种维护人员组成的运维大军,维护成本也随之节节高升。为此,企业IT决策者开始思考:能不能像拧水龙头一样按需调节的使用IT运维服务?而不是不断增加已经价格不菲的运维成本。
定义4
数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。她是一个按数据结构来存储和管理数据的计算机软件系统。数据库的概念实际包括两层意思: (1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。 (2)数据库是数据管理的新方法和技术,他能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
❽ SQL数据库外键
创建外键时可以指定级联删除选项,设置后主表数据被删除,从表数据也会被删除,反之则不然。
参考:http://hi..com/zagelover/item/c0118adda8f92ef592a97475
sql外键约束NO ACTION,CASCADE,SET NULL,SET DEFAULT
NO ACTION
指定如果试图删除/修改某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 DELETE/UPDATE语句。
CASCADE、SET NULL 和 SET DEFAULT
允许通过删除或更新键值来影响指定具有外键关系的表,这些外键关系可追溯到在其中进行修改的表。如果为目标表也定义了级联引用操作,那么指定的级联操作也将应用于删除或更新的那些行。不能为具有 timestamp 列的外键或主键指定 CASCADE。
ON DELETE CASCADE
指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则也将删除所有包含那些外键的行。
ON UPDATE CASCADE
指定如果试图更新某一行中的键值,而该行的键值被其他表的现有行中的外键所引用,则组成外键的所有值也将更新到为该键指定的新值。 (如果 timestamp 列是外键或被引用键的一部分,则不能指定 CASCADE。 )
ON DELETE SET NULL
指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为 NULL。目标表的所有外键列必须可为空值,此约束才可执行。
ON UPDATE SET NULL
指定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为 NULL。目标表的所有外键列必须可为空值,此约束才可执行。
ON DELETE SET DEFAULT
指 定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具 有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用 NULL 作为该列的隐式默认值。因 ON DELETE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。
ON UPDATE SET DEFAULT
指 定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具 有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用 NULL 作为该列的隐式默认值。因 ON UPDATE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。
❾ 递归中 知道子节点如何去追溯根节点
一条显性语句出不来的;
但是如果您能确定当前节点的级别N,那么可以在SQL语句的上的外层套加N-1次的递归语句;这样还是可以出来的;如果您的数据量大,而且用户多,倒是可以考虑采用上面的方法,而且级别层测越多越是有优势;因为递归调用每次都要打开数据库、扫描数据;
❿ 不知道数据在sql server哪一个表内,如何查询。
其实有一种很简单的办法,只要很熟悉业务的逻辑流程的话,很容易就找到想要的表名和字段名。首先找到你显示数据的地方,这个地方总会有业务流程的入口或出口,以此为突破口,追溯业务流程,寻找与数据库有关的程序,一般是牵扯到sql语句,而这时候你再去看这条语句你就会发现你想要的东西