首页 > 数据库 >三、 mariadb数据库用户管理

三、 mariadb数据库用户管理

时间:2024-03-25 14:59:36浏览次数:32  
标签:10.0 ## 数据库 用户 .% user mysql mariadb


1)查询有哪些用户
MariaDB> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | localhost |
| root | localhost |
|      | oldboy    |
| root | oldboy    |
+------+-----------+
6 rows in set (0.00 sec)
2)mysql里用户特点

mysql里用户组成:用户@主机域

主机域:允许客户端主机访问的主机范围)
用户和主机域,两个合起来才算是mysql里的一个用户
2)删除用户语法
drop user 'user'@'主机域';
谈   对象   某个女孩名字


##练习:删除无用用户

drop user 'root'@'::1';
drop user ''@'localhost';
drop user ''@'oldboy';
drop user 'root'@'oldboy';

##删除结果,只保留两个管理员用户

MariaDB [(none)]> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+

3)查看当前登录用户
MariaDB [(none)]> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |   ###管理员用户,使用这个用户只允许在本机连接。
+----------------+

4)创建用户
a.用户特点:


用户@主机范围  ###合起来才算是一个MySQL用户

说明:主机范围就是允许哪些机器连接。
连接的机器的iP地址,必须再允许的主机范围内,否则不允许连接。 
管理要点:一个库对应一个管理员
root@localhost    #表示只能本机本地使用root访问数据库


b.授权主机范围


##单机服务器
localhost    #只能从本机访问,场景单机应用服务和数据库在一台机器推荐
127.0.0.1    #只能从本机访问,场景单机应用服务和数据库在一台机器推荐

10.0.0.166   #授权某个IP访问
====================================
##工作场景:是集群服务器,一堆应用服务器都会连接后端的数据库mysql.
10.0.0.0/24             #授权一个网段,推荐10.0.0.1--10.0.0.254
10.0.0.0/255.255.255.0  #授权一个网段,推荐10.0.0.1--10.0.0.254
10.0.0.%     #授权一个网段,推荐10.0.0.1--10.0.0.254


##禁止使用的授权
192.168.%        #更大网段授权  192.168.0.1---192.168.255.254
%                #任意主机都可以连接root@%。坚决杜绝,打死都杜绝。

工作场景:
企业里创建用户一般是授权一个【内网网段服务器登录】。
10.0.0.%(%为通配符,匹配所有内容)。
10.0.0.0/24 一个网段


c.创建用户
1)语法:


create user  blog@'10.0.0.%' identified by 'oldboy123';
命令   用户  用户名  主机域                         密码


2)创建用户实践:根据自己的linux ip段授权。
MariaDB> create user  blog@'10.0.0.%' identified by 'oldboy123'; ##局域网连接
MariaDB [mysql]> select user,host from mysql.user;
+------+--------------+
| user | host         |
+------+--------------+
| root | 127.0.0.1    |
| blog | 10.0.0.% |    ###创建的用户
| root | localhost    |
+------+--------------+
提示:使用create创建用户,默认是没有权限的;

3)从本机连接:


##无法连接的情况

[root@oldboy ~]# mysql -ublog -poldboy123 
ERROR 1045 (28000): Access denied for user 'blog'@'localhost' (using password: YES)


错误原因:数据库里没有你连接的'blog'@'localhost'用户###使用root@localhost连接,还有很多默认的选项

mysql -uroot -poldboy123

###-hlocalhost -P3306 -S /var/lib/mysql/mysql.sock 可以省略
mysql -uroot -poldboy123 -hlocalhost -P3306 -S /var/lib/mysql/mysql.sock


##使用创建的[email protected]用户从本机连接,把10.0.0.100替换成你的IP。

mysql -ublog -poldboy123 -h10.0.0.100 ##tcp/ip连接方式
[root@oldboy ~]# mysql -ublog -poldboy123 -h10.0.0.100
Welcome to the MariaDB monitor.  Commands end with ; or \g.


##创建的用户权限
MariaDB [(none)]> show grants for  blog@'10.0.0.%';
+-----------------------------------------------------------------------------+
| Grants for [email protected].%                                                    |
+-----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'blog'@'10.0.0.%' IDENTIFIED BY PASSWORD '*FE2D3235' |
+-----------------------------------------------------------------------------+
说明:USAGE表示仅有登录权限。

=========================
接下来讲为用户赋予权限。
=========================


5) mariadb数据库用户授权
1)创建用户并且授权


有两种方法:

语法1:推荐第一种
create user  用户@主机域 identified by '密码';

grant 权限 on 库.表 to 用户@主机域;

语法2: 创建用户加授权,mysql5.7以后取消了此法。
grant 权限 on 库.表 to 用户@主机域 identified by '密码';


2)授权blog@'10.0.0.%'所有权限


#授权

grant all on *.* to blog@'10.0.0.%';

#检查授权

show grants for  blog@'10.0.0.%';
##GRANT 【ALL PRIVILEGES】 ON *.* TO 'blog'@'10.0.0.%'

3)一条命令创建用户oldboy@'10.0.0.%',并授权所有权限
grant all on *.* to oldboy@'10.0.0.%' identified by 'oldboy123';
##刷新生效
flush privileges;
6) 使用win客户端连接数据库(可以可视化修改)
##1)使用客户端连接连接前需要关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
##2)安装sqlyog工具见群文件


使用sqlyog工具,通过oldboy@'10.0.0.%'链接数据库,见视频讲解。

##3)在Linux虚拟机里的数据库看来,windows宿主机的IP到底属于属于什么范围?
是vnet8网卡的ip 10.0.0.1,如果你的ip段和老师的不一样,把10.0.0改成你的虚拟机的网段。

##4)sqlyog里面操作和注释


## 显示所有数据库
SHOW DATABASES;

-- 查询所有用户
SELECT USER,HOST FROM mysql.user;
============================================
sqlyog工具可以像excell可视化增删改修改表内容。
============================================

7)故障排查:使用客户端连不上时候如何排查。

1)服务器端是否有连接的mysql的用户,授权范围是否正确。


[root@oldboyedu ~]# mysql -uoldboy -poldboy123 -h10.0.0.100

2)客户端ping ip


[x:\~]$ ping 10.0.0.108
如果不通,写错IP了,物理链路问题。

3)客户端telnet ip 3306

[x:\~]$ telnet 10.0.0.108 3306

如果不通大概率就是防火墙问题。
systemctl stop firewalld
systemctl enable firewalld

8) 数据库有哪些权限可以授权
##1.授权一个和管理员root等价的oldboy权限。
drop user oldboy@'10.0.0.%';
grant all on *.* to oldboy@'10.0.0.%' identified by 'oldboy123' with grant option;
flush privileges;
select user,host from mysql.user;
##2.前面授权命令


grant all on *.* to oldboy@'10.0.0.%' identified by 'oldboy123';
说明:all等价all privileges,唯独缺Grant option权限,不能使用grant创建用户以及授权):
如果增加Grant option权限,授权的时候加with grant option;

##3.查看数据库有哪些权限可以授权


show privileges;

###表的内容,开发人员###
SELECT    查询(数据)
INSERT    插入(数据)
UPDETE    修改(数据)
DELETE  删除(数据)

###表、库、索引,DBA管理员的权限
CREATE    创建(数据库、表等对象)
DROP    删除(数据库、表等对象)
INDEX    索引
ALTER    修改(数据库、表等对象)

###
RELOAD     重载
SHUTDOWN 关闭
PROCESS    进程
FILE    文件
REFERENCES    参考资料
SHOW?DATABASES    查看数据库
SUPER    超级权限
CREATE?TEMPORARY?TABLES    创建临时表
LOCK?TABLES    锁表
EXECUTE    执行
REPLICATION?SLAVE    从复制权限
REPLICATION?CLIENT    从客户端复制
CREATE?VIEW    创建视图
SHOW?VIEW    查看视图
CREATE?ROUTINE    创建存储过程
ALTER?ROUTINE    修改存储过程
CREATE?USER    创建用户
EVENT    事件
TRIGGER?    触发器
CREATE?TABLESPACE    创建表空间

标签:10.0,##,数据库,用户,.%,user,mysql,mariadb
From: https://blog.csdn.net/weixin_56233402/article/details/137014156

相关文章

  • 瀚高数据库 select-sql常用函数
    瀚高数据库select-sql常用函数1、字符串拼接||语法string||string示例'post'||'gresql'--返回postgresql2、字符串的长度length()语法length(string)示例length('odoo')--返回43、模式匹配like语法stringlikepattern示例’abc’like’abc’--返回true’abc’li......
  • SQLYOG连接数据库时报错1251
    报错图片报错原因:主要是由于mysql8以前的加密规则与mysql8以后的存在差异,一些版本旧的客户端和服务端版本差别太大!解决办法:1.修改加密规则(注意引号为英文单引号,后面结尾的分号必须带上,@符号和引号之间无空格,下同)ALTERUSER'root'@'localhost'IDENTIFIEDBY'passwor......
  • 截取适合数据库长度的字符串
    importjava.nio.charset.StandardCharsets;publicclassTools{publicstaticvoidmain(String[]args){System.out.println(splitString("[计算费用应judnsdjwddqwhwqdwdqhwdqhwqhqwihq就得花洒uhuqwduhqwudquwhuqdwuhdqwqdw请重新计算;",128));}......
  • 达梦数据库主从切换(takeover)
    环境:OS:Centos7DB:V8 1.手工执行监控器[dmdba@host02DAMENG]$dmmonitor/dmdbms/data/DAMENG/dmmonitor.iniloginusername:sysdbapassword:[monitor]2024-03-2509:54:55:Logindmmonitorsuccess!choosetakeoverGRP1Group(grp1)hasactiveprimary......
  • 常用命令--数据库备份--mysqdump
    常用命令--数据库备份--mysqdump常用选项mysqldump是MySQL数据库的一个重要工具,用于创建数据库的逻辑备份。以下是mysqldump的一些常用选项及其功能:1.-uusername或--user=username:指定连接MySQL服务器的用户名。2.-p或--password:提示输入密码。也可以直接跟在-u......
  • 为什么连接数据库的端口号与配置文件中的端口号不一致?
    为什么连接数据库的端口号与配置文件中的端口号不一致?背景介绍:在安装openGauss3.0数据库时,发现配置文件中写的端口号是5432,但是数据库连接时,执行gsql--dpostgres-p5432提示错误,无法连接到数据库。报错内容:[omm@hostname]$gsql-dpostgres-p5432failedtoconn......
  • cmd窗口远程连接mysql数据库命令
    注意点:电脑需要先安装好mysql数据库(不等同于安装好Navicat工具,是要安装好MySQL数据库)1、同时点击win+R,输入cmd之后点击回车,进入cmd窗口;2、直接在命令行中输入mysql-h数据库ip地址-P端口号-u用户名-p比如:mysql-h192.168.5.116-P3306-uroot-p3、点击回车,会出......
  • 【转载】基于Ado.Net多个关系型数据库DbHelper封装
    主要是记录一下,后续有用的时候再翻看。publicclassDbHelper{privatereadonlyDataBase_dataBase;publicDbHelper(DataBasedataBase){_dataBase=dataBase;}publicDataBaseGetDataBase(){......
  • Django Forms组件,展示用户输入不合规的提示信息,钩子函数
    DjangoForms组件,展示用户输入不合规的提示信息,钩子函数前戏:使用form表单,用户输入特定信息,比如:金瓶,输入框右侧提示信息,不使用Ajax。前端代码:<body><formaction=""method="post"><p>username:<inputtype="text"name="username"><......
  • 数据库getshell
    数据库getshellmysql拿sqli-labs实验先弄环境linux下:下载sqli-labs到/var/www/html开启apache2、mysql连接mysql执行命令:createuser'sqlilab'@'localhost'identifiedby'sqlilab';GRANTALLON*.*TO'sqlilab'@'localhost';set......