首页 > 数据库 > MySQL > 正文

mysql数据库如何增加用户

2024-07-24 12:34:21
字体:
来源:转载
供稿:网友
  MySQL 在安装时,会默认创建一个名为 root 的用户,该用户拥有超级权限,可以控制整个 MySQL 服务器。
 
  在对 MySQL 的日常管理和操作中,为了避免有人恶意使用 root 用户控制数据库,我们通常创建一些具有适当权限的用户,尽可能地不用或少用 root 用户登录系统,以此来确保数据的安全访问。
 
  mysql数据库增加(创建)用户的两种方法
 
  使用 CREATE USER 语句创建用户
  使用 GRANT 语句创建用户
  1、使用MySQL CREATE USER语句新建用户
  可以使用 CREATE USER 语句来创建 MySQL 用户,并设置相应的密码。其基本语法格式如下:
 
  CREATE USER 用户 IDENTIFIED BY [ PASSWORD ] 'password'];
  1) 用户
 
  指定创建用户账号,格式为 username'@'hostname。这里的user_name是用户名,host_name为主机名,即用户连接 MySQL 时所用主机的名字。如果在创建的过程中,只给出了用户名,而没指定主机名,那么主机名默认为“%”,表示一组主机,即对所有主机开放权限。
 
  3) IDENTIFIED BY子句
 
  用于指定用户密码。新用户可以没有初始密码,若该用户不设密码,可省略此子句。
 
  2) PASSWORD 'password'
 
  PASSWORD 表示使用哈希值设置密码,该参数可选。如果密码是一个普通的字符串,则不需要使用 PASSWORD 关键字。'password' 表示用户登录时使用的密码,需要用单引号括起来。
 
  注:密码必须是明文。在将用户帐户保存到user表中之前,MySQL将加密密码。
 
  例如,要创建一个使用 密码dbadmin连接到MySQL数据库服务器  的新用户,请使用以下  语句:localhostsecretCREATE USER
 
  CREATE USER dbadmin@localhost
  IDENTIFIED BY 'secret';
  要查看用户帐户的权限,请使用以下SHOW GRANTS语句:
 
  SHOW GRANTS FOR dbadmin@localhost;
 
  结果中的*.*表示用户帐户dbadmin只能登录数据库服务器,没有其他权限。要向用户授予权限,请使用GRANT语句。
 
  请注意,点(.)前面的部分代表数据库,点(.)后面的部分代表表格,例如, database.table
 
  要允许用户帐户从任何主机进行连接,请使用百分比(%) 通配符,如以下示例所示:
 
  CREATE USER superadmin@'%'IDENTIFIED BY 'secret';
  百分比通配符% 与在LIKE运算符中使用的效果相同,例如,要允许mysqladmin用户帐户从begtut.com 主机的任何子域连接到数据库服务器  ,请使用百分比通配符%  ,如下所示:
 
  CREATE USER mysqladmin@'%.begtut.com'IDENTIFIED by 'secret';
  请注意,您还可以在CREATE USER 语句中使用下划线通配符_ 。
 
  如果省略hostname 用户帐户的一部分,MySQL将接受它并允许用户从任何主机连接。例如,以下语句创建一个名为remote 可以从任何主机连接到数据库服务器的新用户帐户:
 
  CREATE USER remote;
  您可以看到授予remote用户帐户的权限 :
 
  SHOW GRANTS FOR remote;
 
  如果您不小心引用了用户帐户'username@hostname',MySQL会创建一个用户  username@hostname name 并允许用户从任何主机连接,这可能不是您所期望的。
 
  例如,以下语句创建一个api@localhost可以从任何主机连接到MySQL数据库服务器的新用户。
 
  CREATE USER 'api@localhost';
  SHOW GRANTS FOR 'api@localhost';
 
  如果您创建一个已存在的用户,MySQL将发出错误。例如,以下语句创建一个remote已存在的名为的用户帐户:
 
  CREATE USER remote;
  MySQL发出以下错误消息:
 
  ERROR 1396 (HY000): Operation CREATE USER failed for 'remote'@'%'
  注意:CREATE USER  语句只是一个没有权限的新用户帐户。如果要向用户授予权限,请使用GRANT 语句。
 
  2、使用MySQL GRANT 语句新建用户
  虽然 CREATE USER 语句可以创建普通用户,但是这种方式不便授予用户权限。于是 MySQL 提供了 GRANT 语句。
 
  使用 GRANT 语句创建用户的基本语法形式如下:
 
  GRANT priv_type ON database.table TO user [IDENTIFIED BY [PASSWORD] 'password']
  其中:
 
  priv_type 参数表示新用户的权限;
  database.table 参数表示新用户的权限范围,即只能在指定的数据库和表上使用自己的权限;
  user 参数指定新用户的账号,由用户名和主机名构成;
  IDENTIFIED BY 关键字用来设置密码;
  password 参数表示新用户的密码。
  示例:
 
  下面使用 GRANT 语句创建名为 test3 的用户,主机名为 localhost,密码为 test3。该用户对所有数据库的所有表都有 SELECT 权限。SQL 语句和执行过程如下:
 
  mysql> GRANT SELECT ON*.* TO 'test3'@localhost IDENTIFIED BY 'test3';
  Query OK, 0 rows affected, 1 warning (0.01 sec)
  其中,“*.*” 表示所有数据库下的所有表。结果显示创建用户成功,且 test3 用户对所有表都有查询(SELECT)权限。
 
  技巧:GRANT 语句是 MySQL 中一个非常重要的语句,它可以用来创建用户、修改用户密码和设置用户权限。
 
  到此,相信大家对“mysql数据库如何增加用户”有了更深的了解,不妨来实际操作一番吧!

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表