information_schema系统表——TABLE_PRIVILEGES

本文详细介绍了 TABLE_PRIVILEGES 表的功能及使用方式,该表提供了关于表权限的信息,这些信息来源于 mysql.tables_priv 授予权限表。文中还对比了 INFORMATION_SCHEMA 和 SHOW GRANTS 命令的区别。

表权限

The TABLE_PRIVILEGES table provides information about table privileges. This information comes from the mysql.tables_priv grant table.

INFORMATION_SCHEMA Name SHOW Name Remarks
GRANTEE   'user_name'@'host_name' value
TABLE_CATALOG   def
TABLE_SCHEMA    
TABLE_NAME    
PRIVILEGE_TYPE    
IS_GRANTABLE    

Notes:

The following statements are not equivalent:

SELECT ... FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES

SHOW GRANTS ...
### Information_SchemaTable_Schema 的定义与用途 #### Information_Schema 数据库 Information_Schema 是一个特殊的系统数据库,它提供了关于 MySQL 服务器中其他数据库及其对象的元数据信息。换句话说,它是“关于数据库的数据库”,用于存储和提供有关数据库结构的信息[^3]。 通过查询 Information_Schema 中的视图,可以获取诸如、列、索引、用户权限等各种元数据。例如,`SCHEMATA` 提供了关于数据库(schema)的基本信息[^1],而 `SCHEMA_PRIVILEGES` 则描述了特定用户的数据库级权限信息[^2]。 以下是访问 Information_Schema 的典型方式: ```sql SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'example_table'; ``` 此查询返回名为 `example_table` 的的相关元数据信息。 --- #### Table_Schema 字段 Table_Schema 并不是一个独立的数据库或实体,而是作为字段存在于某些 Information_Schema 视图中,比如 `TABLES` 或 `COLUMNS`。具体来说,`TABLE_SCHEMA` 字段示某个所属的数据库名称。因此,在查询过程中,可以通过这个字段来过滤属于特定数据库的或其他对象。 以下是一个示例查询,展示如何利用 `TABLE_SCHEMA` 来筛选指定数据库中的所有: ```sql SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'my_database_name'; ``` 上述 SQL 查询会列出 `my_database_name` 数据库下的所有名。 --- #### 主要区别总结 | **特性** | **Information_Schema** | **Table_Schema** | |---------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------| | **本质** | 特殊系统数据库,包含多个视图以提供元数据信息 | 属于 Information_Schema 视图中的一个字段 | | **作用范围** | 提供整个 MySQL 实例级别的元数据 | 描述单个所在的数据库 | | **使用场景** | 获取全局元数据(如所有数据库列结构、列属性等) | 筛选或定位特定数据库内的 | --- ### 示例代码对比 下面分别展示了如何使用这两个概念: #### 使用 Information_Schema 查看所有数据库 ```sql SELECT SCHEMA_NAME AS Database_Name FROM INFORMATION_SCHEMA.SCHEMATA; ``` #### 使用 Table_Schema 找到某数据库的所有 ```sql SELECT TABLE_NAME, TABLE_TYPE FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'specific_db_name'; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值