如何以最小权限从 MS SQL Server 读取数据库和表元数据

发布于 2024-07-08 20:54:04 字数 751 浏览 6 评论 0原文

我想提出在尽可能多的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

迷爱 2024-07-15 20:54:04

我相信 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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文