1 .MySQL创建用户
在MySQL中,创建用户可以通过CREATE USER
语句来完成。以下是创建用户的基本语法:
CREATE USER 'readonly'@'%' IDENTIFIED BY 'readonly';
GRANT SELECT ON test.* TO 'readonly'@'%';
下面是代码的解释
CREATE USER 'readonly'@'%' IDENTIFIED BY 'readonly';:创建名为readonly的用户,并指定密码为readonly,'%'表示该用户可以从任何IP地址连接到mysql服务器。
GRANT SELECT ON test.* TO 'readonly'@'%';:授予readonly用户对jinmao数据库下所有表的查询权限。
test 为数据库名
具体示例:
1.创建一个名为user1,密码为password1的用户,允许从任何主机连接:
CREATE USER 'user1'@'%' IDENTIFIED BY 'password1';
2.创建一个名为user2,密码为password2的用户,只允许从本地主机连接:
CREATE USER 'user2'@'localhost' IDENTIFIED BY 'password2';
3.创建一个名为user3,密码为password3的用户,只允许从特定主机(例如192.168.0.001)连接:
CREATE USER 'user3'@'192.168.0.001' IDENTIFIED BY 'password3';
需要注意的是,创建用户和授予权限的操作通常需要具有特定权限的用户来执行,如CREATE USER和GRANT权限。对于生产环境中的数据库,应该谨慎管理用户和权限,以确保数据库的安全性和完整性。
2 .授权
MySQL提供了多种权限,用于控制用户对数据库和表的访问和操作。以下是MySQL中常用的权限和授权语句,以及相应的示例说明:
ALL PRIVILEGES:拥有所有权限,包括SELECT、INSERT、UPDATE、DELETE、CREATE、DROP等。
示例:
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'host' with grant option;
SELECT:允许用户查询表中的数据。
示例:
GRANT SELECT ON database_name.table_name TO 'username'@'host';
INSERT:允许用户向表中插入数据。
示例:
GRANT INSERT ON database_name.table_name TO 'username'@'host';
UPDATE:允许用户更新表中的数据。
示例:
GRANT UPDATE ON database_name.table_name TO 'username'@'host';
DELETE:允许用户删除表中的数据。
示例:
GRANT DELETE ON database_name.table_name TO 'username'@'host';
CREATE:允许用户创建新的数据库或表。
示例:
GRANT CREATE ON database_name.* TO 'username'@'host';
DROP:允许用户删除数据库或表。
示例:
GRANT DROP ON database_name.* TO 'username'@'host';
GRANT OPTION:允许用户授予或撤销其他用户的权限。
示例:
GRANT GRANT OPTION ON database_name.* TO 'username'@'host';
以上示例中,database_name表示数据库名,table_name表示表名,username表示要授权的用户名,host表示允许连接的主机。通过使用GRANT语句,可以为用户授权具体的权限,以满足其在数据库中的操作需求。
3 .常见用户分类
在MySQL数据库中,常见的几类用户及其对应的权限包括:
Root用户以及其他超级用户: Root用户是拥有所有权限的最高权限用户,可以执行所有操作,包括创建和管理其他用户。一般建议将Root用户作为保留用户,再另建一个超级用户如dba。超级用户通常只在管理和维护数据库时使用,而不应该在生产环境中广泛使用。
程序用户: 程序用户是公司应用程序所使用的用户。他们通常需要执行增删改查,而不具备对数据库的整体管理权限。程序用户需要具备以下权限之一或多个权限的组合:
SELECT:允许用户查询(读取)数据库中的数据。
INSERT:允许用户向数据库中插入新的数据。
UPDATE:允许用户更新数据库中的数据。
DELETE:允许用户删除数据库中的数据。