mysql创建用户并授权用户的权限

# 创建用户
create user 'user'@'%' identified by 'pwd';

# 为用户授权db_name数据库的table1表的select权限

grant SELECT on `db_name`.table1 to 'user'@'%';

# 为用户授权db_name数据库的table2表的select权限

grant SELECT on `db_name`.table2 to 'user'@'%';

# 刷新生效
flush privileges;

# 显示用户权限
show grants for 'user'@'%'
### 如何在 MySQL创建用户授予视图权限MySQL 数据库管理系统中,可以通过 `CREATE USER` 和 `GRANT` 命令来实现用户创建以及特定权限的分配。以下是具体方法: #### 创建用户创建一个新的 MySQL 用户,可以使用以下命令: ```sql CREATE USER 'new_user'@'host' IDENTIFIED BY 'password'; ``` 这里的 `'new_user'` 是用户名,`'host'` 表示该用户可以从哪个主机连接到数据库(通常设置为 `'localhost'` 或 `%`),而 `'password'` 则是密码[^1]。 #### 授予视图权限 为了使某个用户能够访问指定的视图而不具备修改底层数据的能力,需要执行如下操作: 1. **创建视图** 首先确保已经存在一个视图或者可以根据需求创建新的视图。 ```sql CREATE VIEW my_view AS SELECT column_name(s) FROM table_name WHERE condition; ``` 2. **授予权限用户** 使用 `GRANT` 语句赋予目标用户查看视图的权利。例如: ```sql GRANT SELECT ON database_name.my_view TO 'new_user'@'host'; ``` 这条指令仅允许用户通过查询视图获取信息,而不是直接访问基础表的数据结构或内容[^2]。 3. **刷新权限** 完成上述步骤之后,建议运行下面这条命令以确保更改立即生效: ```sql FLUSH PRIVILEGES; ``` 以上过程展示了如何安全有效地向特定用户提供只读级别的视图访问权,同时保护原始表格不受未授权改动的影响[^3]。 #### 示例脚本 假设我们有一个名为 `employees` 的数据库希望让一位名叫 `report_viewer` 的同事能查阅其中关于员工薪资汇总的信息,则可按此方式编写 SQL 脚本: ```sql -- Step 1: Create View USE employees; CREATE OR REPLACE VIEW salary_summary AS SELECT department_id, AVG(salary) as avg_salary FROM salaries GROUP BY department_id; -- Step 2: Add New User & Assign Permission CREATE USER 'report_viewer'@'%' IDENTIFIED BY 'secure_password_123!'; GRANT SELECT ON employees.salary_summary TO 'report_viewer'@'%'; FLUSH PRIVILEGES; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值