文章目录
- Mysql 创建用户并授权
-
-
- 1. 创建用户
- 2. 授权用户权限
-
- 授予所有权限
- 授予特定权限
- 常用权限
- 3. 刷新权限
- 4. 查看用户权限
- 5. 删除用户
- 总结:
-
Mysql 创建用户并授权
1. 创建用户
首先登录到 MySQL 数据库:
mysql -u root -p
然后创建一个新用户。假设你想创建一个名为 newuser,密码为 password 的用户:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
这里,'localhost' 表示该用户只能从本地连接到数据库。如果你希望该用户能够从任何 IP 地址连接,可以使用 '%' 代替 'localhost',或者指定IP:
CREATE USER 'newuser'@'177.77.77.7' IDENTIFIED BY 'password';
2. 授权用户权限
创建用户后,你可以授权该用户访问特定的数据库和执行相应的操作。
授予所有权限
如果你想授予 newuser 所有权限(例如对数据库 testdb 的所有权限),你可以执行以下命令:
GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'localhost';
-
testdb.*表示授予对数据库testdb中所有表的权限。 -
'newuser'@'localhost'指定了用户名和主机,意味着该用户只能从本地主机连接。
如果你想让用户从任何主机连接,可以使用 %或者指定ip:
GRANT ALL PRIVILEGES ON testdb.* TO 'newuser'@'%';
授予特定权限
你还可以只授予特定的权限,例如:
-
SELECT权限:只允许查询数据 -
INSERT权限:只允许插入数据 -
UPDATE权限:只允许更新数据 -
DELETE权限:只允许删除数据
例如,只授予 newuser 在 testdb 数据库上的查询和插入权限:
GRANT SELECT, INSERT ON testdb.* TO 'newuser'@'localhost';
常用权限
- 全局权限 (Global Privileges)
这些权限适用于 MySQL 服务器的所有数据库。
ALL PRIVILEGES:授予所有权限,相当于所有其他权限的集合。CREATE:允许创建新数据库。DROP:允许删除数据库。DELETE:允许删除数据库中的记录。PROCESS:允许查看其他用户的活动和进程。SHOW DATABASES:允许查看服务器上所有数据库。SUPER:允许执行一些高级操作,如终止查询、设置全局系统变量等。RELOAD:允许重新加载授权表,刷新日志文件等。SHUTDOWN:允许关闭 MySQL 服务。FILE:允许读取和写入文件,通常用于导入/导出数据。SHOW VIEW:允许查看视图定义。
- 数据库级权限 (Database Privileges)
这些权限适用于单个数据库中的所有表、视图、存储过程等。
CREATE:允许在该数据库中创建表、视图等。ALTER:允许修改数据库中的表结构。DROP:允许删除数据库中的表或视图。INDEX:允许创建和删除索引。CREATE TEMPORARY TABLES:允许创建临时表。LOCK TABLES:允许锁定表(用于多线程操作时确保数据一致性)。
- 表级权限 (Table Privileges)
这些权限适用于数据库中的单个表。
SELECT:允许读取表中的数据。INSERT:允许向表中插入数据。UPDATE:允许更新表中的数据。DELETE:允许删除表中的数据。CREATE:允许在该表上创建触发器和视图。DROP:允许删除表。ALTER:允许修改表的结构。INDEX:允许在表上创建或删除索引。CREATE VIEW:允许在该表上创建视图。SHOW VIEW:允许查看视图的结构。
- 列级权限 (Column Privileges)
这些权限适用于表中的单个列。
SELECT:允许读取该列的数据。INSERT:允许插入数据到该列。UPDATE:允许更新该列的数据。
3. 刷新权限
授权完成后,执行以下命令以使权限立即生效:
FLUSH PRIVILEGES;
4. 查看用户权限
如果你想查看某个用户的权限,可以使用以下命令:
SHOW GRANTS FOR 'newuser'@'localhost';
5. 删除用户
如果你要删除用户,可以使用以下命令:
DROP USER 'newuser'@'localhost';
总结:
- 使用
CREATE USER创建新用户。 - 使用
GRANT授予权限。 - 使用
FLUSH PRIVILEGES刷新权限。 - 使用
SHOW GRANTS查看用户权限。 - 使用
DROP USER删除用户。