mysql---数据用户管理

DDL:CTEATE DROP ALTER
dml:对数据进行管理
update insert into delete truncate
dpl:查询语句 select
dcl:权限控制语句 grant revoke

创建用户

create user 'xiaobu'@'localhost' identified by '123456';

create user 这是创建用户的开头

'xiaobu'@'localhost'  

xiaobu	表示的是用户名

localhost :新建的用户可以在那些主机上登录,即可以使用IP地址,网段主机名都可以
例如:
'xiaobu'@'20.0.0.20' 
'xiaobu'@'20.0.0.%' 

identified by '123456'  新建用户的密码

加密创建用

select password('abc123')先生成加密的密码

create user 'xiaobu2'@'localhost' identified by '生成加密的密码';

给创建的用户权限

grant all privileges on * .* to 'xiaobu'@'localhost' identified by '123456';

grant 赋权的开头语句

all privileges 赋予所有权限

on * .* 所有库

on xiaokai.* 只能对指定的库进行操作

to 'xiaobu'@'localhost' 赋权给那个用户

identified by '123456'; 使用那个密码登录,创建用户的时候不写,密码为空

查看用户的权限的命令

show grants for 'xiaobu'@'localhost';

刷新权限 flush privileges (赋权之后要刷新权限)

删除用户的权限

revoke all privileges on xiaobu. * from 'test1'@'20.0.0.50';

如何对权限进行控制

grant select on xiaobu.* to 'test1'@'20.0.0.50' identified by '123456';

删除权限

revoke select on xiaobu.* from 'test1'@'20.0.0.50' ;

如何给一个用户赋予多个权限

grant select,insert,drop on xiaobu.* to 'test1'@'20.0.0.50' identified by '123456';

revoke insert,drop on xiaobu.* from 'test1'@'20.0.0.50';

用户重命名

rename user 'test1'@'20.0.0.50' to 'xiao'@'20.0.0.50'

删除用户

drop user 'test1'@'20.0.0.50';

修改密码

修改当前登录用户的密码

set password = password('abc123')(要在终端里面改)

修改其他用户密码

set password for 'test1'@'20.0.0.50' = password('abc123')

恢复root密码

vim /etc/my.cnf

添加免密登录

skip-grant-tables

重启mysql服务

systemctl restart mysqld

重写进入mysql不用输入密码直接进入

use mysql;

show user;

select * from user;

select user,authentication_string,host from user;

updates mysql.user set

重置root密码

update mysql.user set authentication_string = '123456' where user = 'root';

修改密码之后需要加密。慎用。

update user set authentication_string=password('123456') where Host='localhost' and User='root';

加密密码

update user set authentication_string = password('123456') where host='%'

练习题

1、创建用户,声明网段 test 网段任意 123456

create user 'test'@'20.0.0.%' identified by '123456';
2、创建一个库,库名:test1

create database test1;

3、在库里创建两个表
  table1 
     id 主键
     name 不能为空
     sex 不能为空

 create table table1 (
   id int(4) primary key,
   name char(4) not null,
     sex char(2) not null
 );

  table2
         id 主键
        address 可以为空,默认地址不详
        phone 可以为空 不能重复
    

create table table2 (
         id int(4) primary key,
         address varchar(12) default '不详',
         phone char(11) unique        
    );

   
   3、 test 可以对test1 的库进行 查和增
    grant select,insert on test1.* to 'test'@'20.0.0.%' identified by '123456';
    show grants for 'test'@'20.0.0.%';
  4、  把test的用户名改成test_123
    rename user 'test'@'20.0.0.%' to 'test_123'@'20.0.0.%';
  5、  把密码修改 abc123
    set password for 'test_123'@'20.0.0.%'=password('abc123');
   6、 删除权限:删除增权限
    revoke insert on test1.* from 'test_123'@'20.0.0.%'; 

接下章
    table1的索引是hash类型 sex列做索引
    show index from table1;
    alter table table1 engine=memory;
    create index idx_hash_column on table1 (sex) using hash;
  table2的索引是Btree phone做索引
    show index from table2;
    create index phone_index on table2 (phone);

你可能感兴趣的:(mysql)