首页 > 数据库 >61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户

61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户

时间:2023-04-24 17:38:30浏览次数:43  
标签:LTS 语句 数据库 用户 主机名 61 USER mysql 权限

61 openEuler 22.03-LTS 搭建MySQL数据库服务器-管理数据库用户

61.1 创建用户

可以使用CREATE USER语句来创建一个或多个用户,并设置相应的口令。

CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';

其中:

  • username:用户名。
  • hostname:主机名,即用户连接数据库时所在的主机的名字。若是本地用户可用localhost,若在创建的过程中,未指定主机名,则主机名默认为“%”,表示一组主机。
  • password:用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器,但从安全的角度而言,不推荐这种做法。

使用CREATE USER语句必须拥有数据库的INSERT权限或全局CREATE USER权限。

使用CREATE USER语句创建一个用户账号后,会在系统自身的数据库的user表中添加一条新记录。若创建的账户已经存在,则语句执行时会出现错误。

新创建的用户拥有的权限很少,只允许进行不需要权限的操作,如使用SHOW语句查询所有存储引擎和字符集的列表等。

示例

创建密码为123456,用户名为testuser1的本地用户。

mysql> CREATE USER 'testuser1'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.01 sec)

mysql> 

创建密码为123456,用户名为testuser2,主机名为192.168.0.100的用户。

mysql> CREATE USER 'testuser2'@'192.168.0.100' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.2 查看用户

可以使用SHOW GRANTS语句或SELECT语句查看一个或多个用户。

查看特定用户:

SHOW GRANTS [FOR 'username'@'hostname'];
SELECT USER,HOST,PASSWORD FROM mysql.user WHERE USER='username';

查看所有用户:

SELECT USER,HOST FROM mysql.user;

其中:

  • username:用户名。
  • hostname:主机名。

示例

查看testuser1用户。

mysql> SHOW GRANTS FOR 'testuser1'@'localhost';
+-----------------------------------------------+
| Grants for testuser1@localhost                |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO `testuser1`@`localhost` |
+-----------------------------------------------+
1 row in set (0.00 sec)

mysql> 

查看mysql数据库中所有用户。

mysql> SELECT USER,HOST FROM mysql.user;
+------------------+---------------+
| USER             | HOST          |
+------------------+---------------+
| root             | %             |
| testuser2        | 192.168.0.100 |
| mysql.infoschema | localhost     |
| mysql.session    | localhost     |
| mysql.sys        | localhost     |
| root             | localhost     |
| testuser1        | localhost     |
+------------------+---------------+
7 rows in set (0.00 sec)

mysql> 

61.3 修改用户

61.3.1 修改用户名

可以使用RENAME USER语句修改一个或多个已经存在的用户名。

RENAME USER 'oldusername'@'hostname' TO 'newusername'@'hostname';

其中:

  • oldusername:旧的用户名。
  • newusername:新的用户名。
  • hostname:主机名。

RENAME USER语句用于对原有的账号进行重命名。若系统中旧账号不存在或者新账号已存在,则该语句执行时会出现错误。

使用RENAME USER语句,必须拥有数据库的UPDATE权限或全局CREATE USER权限。

61.3.2 修改用户示例

将用户名testuser1修改为testuser2,主机名为locahost。

mysql> RENAME USER 'testuser1'@'localhost' TO 'testuser2'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.3.3 修改用户密码

可以使用SET PASSWORD语句修改一个用户的登录密码。

SET PASSWORD FOR 'username'@'hostname' = 'newpassword';

其中:

  • FOR 'username'@'hostname':FOR字句,可选项,指定欲修改密码的用户名及主机名。
  • 'newpassword':新密码。

在SET PASSWORD语句中,若不加上FOR子句,表示修改当前用户的密码。

FOR字句中必须以'username'@'hostname'的格式给定,username为账户的用户名,hostname为账户的主机名。

欲修改密码的账号必须在系统中存在,否则语句执行时会出现错误。

61.3.4 修改用户密码示例

将用户名为testuser2的密码修改为0123456,主机名为locahost。

mysql> SET PASSWORD FOR 'testuser2'@'localhost' = '0123456';
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.4 删除用户

可以使用DROP USER语句来删除一个或多个用户账号以及相关的权限。

DROP USER 'username1'@'hostname1' [,'username2'@'hostname2']…;

image-20221219193932361 注意: 用户的删除不会影响他们之前所创建的表、索引或其他数据库对象,因为数据库并不会记录创建了这些对象的账号。

DROP USER语句可用于删除一个或多个数据库账号,并删除其原有权限。

使用DROP USER语句必须拥有数据库的DELETE权限或全局CREATE USER权限。

在DROP USER语句的使用中,若没有明确地给出账号的主机名,则该主机名默认为“%”。

示例

删除用户名为userexample的本地用户。

mysql> DROP USER 'testuser2'@'localhost';
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.5 用户授权

可以使用GRANT语句来对新建用户的授权。

GRANT privileges ON databasename.tablename TO 'username'@'hostname';

其中:

  • ON字句:用于指定权限授予的对象和级别。
  • privileges:用户的操作权限,如SELECT,INSERT,UPDATE等,如果要授予所有的权限则使用ALL。
  • databasename:数据库名。
  • tablename:表名。
  • TO字句:用来设定用户密码,以及指定被赋予权限的用户。
  • username:用户名。
  • hostname:主机名。

如果要授予该用户对所有数据库和表的相应操作权限则可用表示,如.*。

如果在TO子句中给系统中存在的用户指定密码,则新密码会将原密码覆盖。

如果权限被授予给一个不存在的用户,则会自动执行一条CREATE USER语句来创建这个用户,但同时必须为该用户指定密码。

示例

对本地用户userexample授予SELECT和INSERT权限。

mysql> GRANT SELECT,INSERT ON *.* TO 'testuser2'@'192.168.0.100'; 
Query OK, 0 rows affected (0.00 sec)

mysql> 

61.6 删除用户权限

可以使用REVOKE语句来删除一个用户的权限,但此用户不会被删除。

REVOKE privilege ON databasename.tablename FROM 'username'@'hostname';

其中REVOKE语句的参数与GRANT语句的参数含义相同。

要使用 REVOKE 语句,必须拥有数据库的全局CREATE USER权限或UPDATE权限。

示例

删除本地用户testuser2的INSERT权限。

mysql> REVOKE INSERT ON *.* FROM 'testuser2'@'192.168.0.100';
Query OK, 0 rows affected (0.00 sec)

mysql> 

标签:LTS,语句,数据库,用户,主机名,61,USER,mysql,权限
From: https://blog.51cto.com/u_237826/6221527

相关文章

  • 达梦数据库使用disql登录, 密码包含特殊字符(@)的处理方法
    一、背景  用户密码是:dm@ABcC123,包含@这个特殊符号。 disql客户端连接数据库的方式是:disqlusername/password@IP:PORT  那么,这个时候,密码也包含@,这个符号,该怎么处理呢? 二、处理方法 1、密码用双引号括起来,"dm@ABcC123"2、对双引号加转义,\"dm@ABcC123\"......
  • 数据库查询权限信息代码实现
    ​我们只需要根据用户id去查询到其所对应的权限信息即可​所以我们可以先定义个mapper,其中提供一个方法可以根据userid查询权限信息创建对应的mapper文件,定义对应的sql语句 在application.yml中配置mapperXML文件的位置 ​然后我们可以在UserDetailsServiceImpl中去调......
  • 2023云数据库技术沙龙MySQL x ClickHouse专场成功举办
    4月22日,2023首届云数据库技术沙龙MySQLxClickHouse专场,在杭州市海智中心成功举办。本次沙龙由玖章算术、菜根发展、良仓太炎共创联合主办。围绕“技术进化,让数据更智能”为主题,汇聚字节跳动、阿里云、玖章算术、华为云、腾讯云、百度的6位数据库领域专家,深入MySQLxClickHo......
  • 从数据库查询权限信息 准备工作
     RBAC权限模型(Role-BasedAccessControl)即:基于角色的权限控制。这是目前最常被开发者使用也是相对易用、通用权限模型 准备工作创建数据库表CREATETABLE`sys_menu`(`id`bigint(20)NOTNULLAUTO_INCREMENT,`menu_name`varchar(64)NOTNULLDEFAULT'NULL'COMME......
  • FIT2094 数据库设计
    FIT2094DatabasesNormalisationandLogicalDatabaseDesign-CleanUpInc(CUI)FACULTYOFINFORMATIONTECHNOLOGYGiventheprovidedcasestudyfromassignment1A,andadditionalforms/documentsrelatedtothecasestudy,studentswillbeaskedtotrans......
  • 医院核心数据库一体化建设实践
     建设背景 “以数据为核心资源的数字化时代,正在成为引领和推动新一轮科技革命的核心力量,将会深刻影响卫生健康行业。”这是四月份发布的《公立医院运营管理信息化功能指引》中对数据重要性的描述。数据库作为数据的载体,支撑着整个业务系统,发挥着非常重要的作用,被喻为“IT的心......
  • sqlsever收缩数据库日志操作
    1、备份事务日志--->备份到其他盘;备份类型->事务日志 2、数据库---->数据库收缩---->文件类型:日志 ......
  • 数据库系统概论—标准语言SQL
    数据库系统概论—基础篇(2)三、关系数据库标准语言SQL1、数据定义1.1基本表的定义、删除与修改定义基本表#建立学生表CREATETABLEStudent(SnoCHAR(9)PRIMARYKEY,SnameCHAR(20)UNIQUE,SsexCHAR(2),SageSMALLINT,SdeptCHAR(20));修......
  • ICS TRIPLEX T8461
    W;① ⑧ 0  ③0 ① ⑦  77 ⑤  ⑨ICSTRIPLEXT8461T8403WoodwardDSLC-2™(数字同步器和负载控制)是一种基于微处理器的同步器和负载控制,设计用于三相交流发电机。DSLC-2将同步器、负载传感器、负载控制、死母线闭合系统、VAR、功率因数和过程控制组合在一......
  • 树莓派安装数据库 mariadb-server
    安装mariadb-serversudoaptinstallmariadb-server配置mariadb-server进入数据服务器sudomysql为root用户设置密码:ALTERUSER'root'@'localhost'IDENTIFIEDBY'your_password';将'your_password'替换为您想要设置的密码。创建一个新用户并为其设置密码:CREA......