如何以最小权限从 MS SQL Server 读取数据库和表元数据
我想提出在尽可能多的 SQL Server 版本上返回 Microsoft SQL Server 实例中的数据库和表的最小查询集。
我不确定我是否应该半回答我自己的问题,但这是我认为我需要 2000 年和 2005 年的内容。理想情况下,我会进一步返回,但我无法访问旧版本:
Permissions
2005: a具有 VIEW ANY DEFINITION 权限的用户
2000:对要检索的所有数据库具有公共角色的用户
数据库
sp_databases
或
SELECT * FROM sysdatabases
两者都在 SQL Server 2000 和 2005 上工作
表
2005
SELECT name FROM <database>.sys.tables
或
SELECT table_name FROM <database>.information_schema.tables WHERE table_type = 'BASE TABLE'
2000
SELECT name from <database>.dbo.sysobjects WHERE xtype = 'U'
I want to come up with the minimal set of queries that return the databases and tables in a Microsoft SQL Server instance, on as many versions of SQL Server as possible.
I'm not sure if I should half-answer my own question, but here's what I think I need for 2000 and 2005. Ideally I'd go back further, but I don't have access to older versions:
Permissions
2005: a user with VIEW ANY DEFINITION permission
2000: a user the with public role on all databases to be retrieved
Databases
sp_databases
or
SELECT * FROM sysdatabases
both work on SQL Server 2000 and 2005
Tables
2005
SELECT name FROM <database>.sys.tables
or
SELECT table_name FROM <database>.information_schema.tables WHERE table_type = 'BASE TABLE'
2000
SELECT name from <database>.dbo.sysobjects WHERE xtype = 'U'
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我相信 INFORMATION_SCHEMA 视图可以帮助您。
http://msdn.microsoft.com/en-us/library/ms186778。 ASPX
I belive INFORMATION_SCHEMA Views could help you.
http://msdn.microsoft.com/en-us/library/ms186778.aspx