mysql怎么设置指定用户只有访问视图的权限没有访问表的权限
时间: 2023-02-08 11:53:18 浏览: 1128
在 MySQL 中,可以通过使用 GRANT 命令来为用户授予访问视图的权限,并通过 REVOKE 命令来撤销对表的访问权限。
为指定用户授予访问视图的权限:
```
GRANT SELECT ON view_name TO 'username'@'hostname';
```
撤销对表的访问权限:
```
REVOKE SELECT, INSERT, UPDATE, DELETE ON table_name FROM 'username'@'hostname';
```
在上面的语句中,view_name 是视图的名称,table_name 是表的名称,username 是用户名,hostname 是允许该用户连接的主机名。
要注意的是, 如果视图依赖于表并且你禁止了表的访问权限,那么在视图上的操作也会失败。
相关问题
mysql创建用户 视图权限
要在MySQL中创建用户并赋予视图权限,您可以执行以下步骤:
1. 登录到MySQL服务器:
```
mysql -u root -p
```
2. 创建新用户:
```
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
```
将 `'username'` 替换为您想要创建的用户名,并将 `'password'` 替换为密码。
3. 授予用户访问权限:
```
GRANT SELECT ON database.view_name TO 'username'@'localhost';
```
将 `'database.view_name'` 替换为您要授予访问权限的数据库和视图名称。
4. 刷新权限:
```
FLUSH PRIVILEGES;
```
这样,您就成功创建了一个新用户并赋予了视图的 SELECT 权限。请根据您的需求修改相应的命令。
mysql查询用户视图权限
要查询MySQL中用户视图的权限,您可以使用以下查询语句:
```
SHOW GRANTS FOR 'username'@'localhost';
```
将 `username` 替换为要查询权限的用户的用户名。如果您想查询所有用户的视图权限,请使用以下查询语句:
```
SELECT * FROM information_schema.USER_PRIVILEGES WHERE privilege_type='SELECT' AND table_schema='your_database_name';
```
将 `your_database_name` 替换为您要查询的数据库名称。此查询将返回具有SELECT权限的所有用户的列表,包括视图权限。