文件夹就是数据库
文件就是表
数据行就是行
data下的mysql这个数据库里有张User表,里面保存了用户信息
show databases;查看所有数据库
use mysql;
使用这个use数据库(进入这个文件夹)
show tables;
查看这个数据库下所有的表(文件)
文件最后有个user,我们登陆mysql服务器的时候,它就是在这里看有没有用户名和密码的
select user from user;查看user表下的user列
我能不能给它创建一个用户,以后登录的时候,不但可以用root,还可以用其他的用户
创建用户
create user "用户名"@"IP地址" identified by "密码";
比如说
create user "zhangsan"@"192.168.1.1" identified by "123";
表示创建了一个用户叫zhangsan,这个用户只能在192.168.1.1这台机器上才能登录,密码是123
create user "zhangsan"@"192.168.1.%" identified by "123";
表示创建了一个用户叫zhangsan,%表示任意,表示ip是192.168.1这个前缀的都能登录,密码是123 create user 'zhangsan'@'%' identified by '123'; 表示创建了一个用户叫zhangsan,所有机器上都能登录,密码是123 创建完用户之后,我们还得授权,就是让他能看哪个目录,或者只能看哪个目录的哪个文件 也就是只能看某个数据库,或者某个数据库里的某个表 授权有2个特点: 1、给谁授权 2、权限是什么 授权 grant 权限 on 数据库.表 to "用户"@"IP地址"; grant select,insert,update on db1.t1 to "zhangsan"@"%"; 表示zhangsan这个用户在任何机器上都能对db1数据库下的t1表做查询、插入、更新 设置权限的命令叫grant on db1.* 表示查看db1目录下所有的东西,*表示这个目录下所有的文件 on *.*表示所有数据库下的所有表 如果db1下面有3个表,分别是t1、t2、t3,直接写db1.t1表示只能看db1下的t1文件,其他表都没有任何权限,看不到也做不了操作。 权限有了,接下来该说给哪个用户了 to表示给哪个用户 grant all privilleges on db1.t1 to 'zhangsan'@'%'; 表示zhangsan这个用户在任何机器上都能对db1数据库下的t1表做除了授权以外的任何权限 all privileges表示除了grant以外的所有权限 root是最高管理员,可以给某个人授权
连起来搞一遍
先创建用户
create user 'zhangsan'@'%' identified by '123';接着给zhangsan授权
grant all privileges on db1.* to 'zhangsan'@'%'; 接下来我们再打开一个终端,输入下面命令 mysql -u zhangsan -p123;show databases我们只能看到一个db1,information_schema是相关信息的,可以忽略它
在公司里数据库都是dba来搞的,dba给你创建个数据库,你这个程序只能用这个数据库,再给你创建个用户,你以后用这个用户进这个数据库就行了。咱们是看不到其他数据库的
就应该是这样,如果黑客黑了你的程序,它拿到了用户名和密码,他通过用户名和密码登录进来,也只能看这个数据库,跟你公司其他业务的数据库是不是没有关系,相当于我们把数据库和数据库通过用户进行分离,真正在公司开发的时候,dba给你提供一个用户名和密码,然后你拿着用户名和密码去登录就可以了。
取消授权
revoke all privileges from db1.t1 to "zhangsan"@"%";
这条命令就把张三这用户关于db1下的t1文件的所有权限都取消了
select * from 表名;
表示查看这个表下面所有的列
select name from 表名;
只查看这个表下name这一列
select name,age,id from 表名;
要看很多列,用逗号隔开,真实显示的时候跟你数据库里写的列的顺序是没有关系的,是按照你在select后面的写的先后顺序来显示
标签:创建,数据库,用户,t1,user,Mysql,db1,授权,zhangsan From: https://www.cnblogs.com/z-x-y/p/17590539.html