是否可以获取最后一次编辑 SQL Server 中的存储过程、函数、表或视图的用户?
我什至不确定 SQL Server 是否存储此类信息,但是是否有可能获取最后修改特定存储过程、函数、表或视图的人的用户名?
没什么重要的,只是想知道。谢谢!
I'm not even sure SQL Server stores this kind of information, but, is it possible to get the username of the person who last modified a particular stored procedure, function, table or view?
Nothing critical, just wondering. Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您使用的是 SQL Server 2008,则可以使用一些新功能,允许您在 DDL 更改上放置触发器。然后,您可以根据经过身份验证的用户跟踪谁进行了更改。
我认为这些触发器对于 SQL 2008 来说是新的,但它们可能会在 2005 年可用。
话虽如此,理想情况下您应该使用 Visual Studio Database Professional 等工具将数据库架构置于源代码控制之下。然后您就可以了解谁在何时做了什么事情的完整历史记录。
兰迪
If you are using SQL Server 2008, you could use some new features that allow you to put triggers on DDL changes. You can then track, based on the authenticated user, who made the change.
I think these triggers are new to SQL 2008, but they may be available in 2005.
Having said this, ideally you should have your database schema under source control, using a tool like Visual Studio Database Professional. Then you'd have a complete history of who did what and when.
Randy
它不会立即存储此信息。
您可以使用 SQL 跟踪和事件通知(请参阅相应的 MSDN 文章)自行记录此类信息。
虽然我对这些技术没有经验......
It doesn't store this information out of the box.
You can use SQL Trace and Event notification (see the corresponding MSDN Article) to log this kind of information by yourself.
I have no experience with these technologies though ...
一定要放置 DDL 触发器。即使您最终没有使用它们,或者您最终安装了一个不错的源代码控制系统,仍然可以使用 DDL 触发器,以便您可以确定发生了什么。
Definitely put DDL triggers in place. Even if you don't end up using them, or if you end up putting a decent source control system in place, still have the DDL triggers in place so that you can be sure about what's going on.