mysql数据库五大权限表

MySQL 数据库是 Web 开发中最常用的数据库系统之一,为保证数据库的安全,MySQL 数据库提供五种重要的权限控制表。这些权限表是:

1. mysql.user, 用户授权表

2. mysql.db, 数据库对象授权表

3. mysql.tables_priv, 数据表对象授权表

4. mysql.columns_priv, 数据表列对象授权表

5. mysql.procs_priv, 存储过程和函数对象授权表

下面我们分别介绍它们的使用方法。

一、mysql.user - 用户授权表

mysql.user 表保存了 MySQL 数据库中用户账户的信息,每一个用户都有一个相应的记录。这个表被用来控制 MySQL 用户的访问权限。每个用户记录包含用户名和密码,并给定他们在 MySQL 上的访问权限。

用户授权表中的字段有:

- Host: 表示用户登陆的主机名或者 IP 地址。

- User: 用户名,即登陆的账号名称。

- Password: 用户密码,加密存储。

- Select_priv: 是否具有SELECT选项的权限。

- Insert_priv: 是否具有INSERT选项的权限。

- Update_priv: 是否具有UPDATE选项的权限。

- Delete_priv: 是否具有DELETE选项的权限。

- Create_priv: 是否具有CREATE选项的权限。

- Drop_priv: 是否具有DROP选项的权限。

- Reload_priv: 是否具有RELOAD选项的权限。

- Shutdown_priv: 是否具有SHUTDOWN选项的权限。

- Process_priv: 是否具有PROCESS选项的权限。

- File_priv: 是否具有FILE选项的权限。

- References_priv: 是否具有REFERENCES选项的权限。

- Index_priv: 是否具有INDEX选项的权限。

- Alter_priv: 是否具有ALTER选项的权限。

- Show_db_priv: 是否具有SHOW DATABASES选项的权限。

- Super_priv: 是否具有SUPER选项的权限。

- Create_tmp_table_priv: 是否具有CREATE TEMPORARY TABLES选项的权限。

- Lock_tables_priv: 是否具有LOCK TABLES选项的权限。

- Execute_priv: 是否具有EXECUTE选项的权限。

- Repl_slave_priv: 是否具有SLAVE REPLICATION选项的权限。

- Repl_client_priv: 是否具有REPLICATION CLIENT选项的权限。

- Create_view_priv: 是否具有CREATE VIEW选项的权限。

- Show_view_priv: 是否具有SHOW VIEW选项的权限。

- Create_routine_priv: 是否具有创建Function、Procedure、Trigger选项的权限。

- Alter_routine_priv: 是否具有ALTER ROUTINE 选项的权限。

- Create_user_priv: 是否具有CREATE USER 选项的权限。

- Event_priv: 是否具有EVENT 选项的权限。

- Trigger_priv: 是否具有TRIGGER选项的权限。

下面的示例为用户“testuser”在主机“localhost”上授予 SELECT 和 INSERT 权限:

```

mysql> grant SELECT, INSERT on testdb.* to 'testuser'@'localhost';

```

二、mysql.db - 数据库对象授权表

mysql.db 表保存了 MySQL 数据库中的数据库对象(database、table、column)的信息。这个表被用来控制 MySQL 数据库对象的访问权限。

- Host: 表示用户登陆的主机名或者 IP 地址。

- Db: 数据库名称。

- User: 用户名,即登陆的账号名称。

- Select_priv: 是否具有该数据库的SELECT选项的权限。

- Insert_priv: 是否具有该数据库的INSERT选项的权限。

- Update_priv: 是否具有该数据库的UPDATE选项的权限。

- Delete_priv: 是否具有该数据库的DELETE选项的权限。

- Create_priv: 是否具有该数据库的CREATE选项的权限。

- Drop_priv: 是否具有该数据库的DROP选项的权限。

- Grant_priv: 是否具有该数据库的GRANT选项的权限。

- References_priv: 是否具有该数据库的REFERENCES选项的权限。

- Index_priv: 是否具有该数据库的INDEX选项的权限。

- Alter_priv: 是否具有该数据库的ALTER选项的权限。

- Create_tmp_table_priv: 是否具有该数据库的CREATE TEMPORARY TABLES选项的权限。

- Lock_tables_priv: 是否具有该数据库的LOCK TABLES选项的权限。

- Create_view_priv: 是否具有该数据库的CREATE VIEW选项的权限。

- Show_view_priv: 是否具有该数据库的SHOW VIEW选项的权限。

- Create_routine_priv: 是否具有该数据库的创建Function、Procedure、Trigger选项的权限。

- Alter_routine_priv: 是否具有该数据库的ALTER ROUTINE选项的权限。

- Execute_priv: 是否具有该数据库的EXECUTE选项的权限。

下面的示例为用户“testuser”在主机“localhost”上授予访问“testdb”数据库的 SELECT 权限:

```

mysql> grant SELECT on testdb.* to 'testuser'@'localhost';

```

三、mysql.tables_priv - 数据表对象授权表

mysql.tables_priv 授权表用于控制用户对数据库的数据表的访问权限。

- Host: 表示用户登陆的主机名或者 IP 地址。

- Db: 数据库名称。

- User: 用户名,即登陆的账号名称。

- Table_name: 数据库中的表名。

- Grantor: 谁给这个权限的。

- Timestamp: 最后一次赋权时间戳。

- Table_priv: 对该表的操作权限,包括 SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、REFERENCES、INDEX、ALTER表。

- Column_priv: 对表中的某一列的操作权限,包括 SELECT、INSERT、UPDATE。

下面的示例为用户“testuser”在主机“localhost”上授予对“test_table”的 SELECT 权限:

```

mysql> grant SELECT on testdb.test_table to 'testuser'@'localhost';

```

四、mysql.columns_priv - 数据表列对象授权表

mysql.columns_priv 表用于控制 MySQL 数据库中数据表列对象的访问权限。

- Host: 表示用户登陆的主机名或者 IP 地址。

- Db: 数据库名称。

- User: 用户名,即登陆的账号名称。

- Table_name: 数据库中的表名。

- Column_name: 数据库中列的名称。

- Timestamp: 最后一次授予权限的时间戳。

- Column_priv: 对列的操作权限,包括 SELECT、INSERT、UPDATE。

下面的示例为用户“testuser”在主机“localhost”上授予对“test_table”中的“test_column”的 SELECT 权限:

```

mysql> grant SELECT (test_column) on testdb.test_table to 'testuser'@'localhost';

```

五、mysql.procs_priv - 存储过程和函数对象授权表

mysql.procs_priv 授权表用于控制存储过程和函数对象的访问权限。

- Host: 表示用户登陆的主机名或者 IP 地址。

- Db: 数据库名称。

- User: 用户名,即登陆的账号名称。

- Routine_name: 存储过程和函数名称。

- Routine_type: 存储过程或函数。

- Grantor: 谁给这个权限的。

- Proc_priv: 存储过程和函数的操作权限。

下面的示例为用户“testuser”在主机“localhost”上授予对 MySQL 存储过程“test_proc”的 EXECUTE 权限:

```

mysql> grant EXECUTE on testdb.test_proc to 'testuser'@'localhost';

```

总之,MySQL 数据库提供了五种重要的权限控制表。这些表可帮助您设置并维护用户和组的数据库访问权限。正确使用它们可确保您的数据库受到最佳保护。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/

点赞(115) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部