Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server SQL 2005查找谁创建了视图_Sql Server_Sql Server 2005_Sql Server 2000 - Fatal编程技术网

Sql server SQL 2005查找谁创建了视图

Sql server SQL 2005查找谁创建了视图,sql-server,sql-server-2005,sql-server-2000,Sql Server,Sql Server 2005,Sql Server 2000,SQL是否存储有关最初创建视图的人或上次修改视图的人的任何信息?我不确定是否有办法查看是谁创建了视图,但sp_帮助将为您提供有关视图创建时间的一些信息 sp_help viewMyView sp_帮助适用于任何和所有数据库对象。顺便说一句,现在太迟了,但是如果您使用2008,您可以创建一个跟踪未来更改的数据库 编辑:找到了 select p.name, v.* from sys.all_views v, sys.database_principals p, sys.schemas s

SQL是否存储有关最初创建视图的人或上次修改视图的人的任何信息?

我不确定是否有办法查看是谁创建了视图,但sp_帮助将为您提供有关视图创建时间的一些信息

sp_help viewMyView

sp_帮助适用于任何和所有数据库对象。顺便说一句,现在太迟了,但是如果您使用2008,您可以创建一个跟踪未来更改的数据库

编辑:找到了

    select p.name, v.* 
from sys.all_views v, sys.database_principals p, sys.schemas s
where p.principal_id = s.principal_id
and v.schema_id = s.schema_id
and v.name = 'your_view_name'

这将产生许多关于数据库中视图的有趣细节,包括列principal\u id。在principal\u id上加入sys.database\u principals作为用户名

SQL Server不存储有关谁创建或修改对象的明确信息。元数据目录中有关于谁是给定对象的所有者或该对象属于哪个模式的信息:

select * from sys.objects where object_id = object_id('<object name>');
但是请注意,这些仅显示对象的所有者。所有者不一定是指创建或修改它的用户。对象的所有权可以在创建过程中更改,也可以在使用语句创建之后更改,这样通过所有权进行标识最多也就不可靠了。此外,sysadmin角色的所有成员都映射到每个数据库中的同一数据库主体dbo

要正确识别创建对象的用户,您应该部署审核方法,但这些方法需要事先部署审核。如果未部署审计,可以在事后进行一些取证:

  • 保罗·兰德尔,你可以查一下日志文件
  • 你可以调查一下

这是创建模式的主体,换句话说,dbo,您。。。
select * from sys.schemas