SQL高手进来帮忙看看!!!!!!!!!!!!!!!!!!!!!

natty7456 2012-12-21 12:49:06
开发代码的时候突然发现,团队里面不知道谁把某一个表名改了,导致前台出错,结果谁都不承认。。。

如何查出是谁干的?
...全文
256 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
YiYanXiYin 2012-12-21
  • 打赏
  • 举报
回复
正式库随便哪个都有修改的权限的话, 下次改的恐怕就不是表名了, 这个问题的责任不在是谁改的,而是谁允许这样的事情发生的, 我想最大的责任是楼主本人
發糞塗牆 2012-12-21
  • 打赏
  • 举报
回复
引用 3 楼 wuxinyuyun 的回复:
sql 不是有日志日志的工具,LOG Explorer http://www.cnblogs.com/wangbinjr/archive/2010/05/04/2354215.html
如果只用了sql身份登录来改,那这个工具没什么用处。这个用来恢复还差不多,但是也有诸多前提条件的。 源代码管理工具:visual sourcesafe或者tfs,要求所有对数据库的修改都要经过这个,这样不仅可以恢复,也可以轻易查出谁做了什么操作,对于正常一点的开发公司,都 不可缺少,当然工具有很多,不仅仅这两个。 监控:做DDL触发器,可以查看谁改了东西。参考: ddl触发器:
IF  EXISTS (SELECT * FROM sys.triggers WHERE parent_class_desc = 'DATABASE' AND name = N'DDLTriggertTrace')
DISABLE TRIGGER [DDLTriggertTrace] ON DATABASE

GO



/****** Object:  DdlTrigger [DDLTriggertTrace]    Script Date: 12/21/2012 14:16:36 ******/
IF  EXISTS (SELECT * FROM sys.triggers WHERE parent_class_desc = 'DATABASE' AND name = N'DDLTriggertTrace')DROP TRIGGER [DDLTriggertTrace] ON DATABASE
GO

/****** Object:  DdlTrigger [DDLTriggertTrace]    Script Date: 12/21/2012 14:16:36 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [DDLTriggertTrace] ON DATABASE
--捕获存储过程、视图、表的创建、修改、删除动作
    FOR CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE, CREATE_VIEW,
        ALTER_VIEW, DROP_VIEW, CREATE_TABLE, ALTER_TABLE, DROP_TABLE
AS
    BEGIN
        SET NOCOUNT ON ;
        DECLARE @EventData XML = EVENTDATA() ;--返回有关服务器或数据库事件的信息,以XML格式保存。
        DECLARE @ip VARCHAR(32) = ( SELECT  client_net_address
                                    FROM    sys.dm_exec_connections
                                    WHERE   session_id = @@SPID
                                  ) ;

        INSERT  AuditDB.dbo.DDLEvents
                ( EventType ,
                  EventDDL ,
                  EventXML ,
                  DatabaseName ,
                  SchemaName ,
                  ObjectName ,
                  HostName ,
                  IPAddress ,
                  ProgramName ,
                  LoginName
                )
                SELECT  @EventData.value('(/EVENT_INSTANCE/EventType)[1]',
                                         'NVARCHAR(100)') ,
                        @EventData.value('(/EVENT_INSTANCE/TSQLCommand)[1]',
                                         'NVARCHAR(MAX)') ,
                        @EventData ,
                        DB_NAME() ,
                        @EventData.value('(/EVENT_INSTANCE/SchemaName)[1]',
                                         'NVARCHAR(255)') ,
                        @EventData.value('(/EVENT_INSTANCE/ObjectName)[1]',
                                         'NVARCHAR(255)') ,
                        HOST_NAME() ,
                        @ip ,
                        PROGRAM_NAME() ,
                        SUSER_SNAME() ;
    END

GO

SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER OFF
GO
存放的表:
/****** Object:  Table [dbo].[DDLEvents]    Script Date: 12/21/2012 14:17:31 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[DDLEvents](
	[EventDate] [datetime] NOT NULL,
	[EventType] [nvarchar](64) NULL,
	[EventDDL] [nvarchar](max) NULL,
	[EventXML] [xml] NULL,
	[DatabaseName] [nvarchar](255) NULL,
	[SchemaName] [nvarchar](255) NULL,
	[ObjectName] [nvarchar](255) NULL,
	[HostName] [varchar](64) NULL,
	[IPAddress] [varchar](32) NULL,
	[ProgramName] [nvarchar](255) NULL,
	[LoginName] [nvarchar](255) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

ALTER TABLE [dbo].[DDLEvents] ADD  DEFAULT (getdate()) FOR [EventDate]
GO
无心雨云 2012-12-21
  • 打赏
  • 举报
回复
sql 不是有日志查看的工具,LOG Explorer
无心雨云 2012-12-21
  • 打赏
  • 举报
回复
sql 不是有日志日志的工具,LOG Explorer http://www.cnblogs.com/wangbinjr/archive/2010/05/04/2354215.html
natty7456 2012-12-21
  • 打赏
  • 举报
回复
监控和源代码管理工具 叫什么名字?
發糞塗牆 2012-12-21
  • 打赏
  • 举报
回复
如果没有源代码管理工具而且以前也没做过监控,现在要查很难了。如果实在没有,那么这次就算了,把监控和源代码管理工具用上。登录开发服务器的时候用windows登录,这样就没啥好狡辩了。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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