mysql数据库表操作及授权
表操作:增删改查
把/etc/passwd文件的内容导入 passwd表里。
mysql>load data infile"/etc/passwd" into table passwd fields terminated by ":";
基于前面的passwd表,完成下列操作:
1:列出uid低于500且3个字母的用户
mysql> select name from passwd where uid<500 and name like "___";
2:分别统计bash、nologin数
mysql> select count(shell) from passwd where shell like "%bash";
mysql> select count(shell) from passwd where shell like "%nologin";
3:复制用户信息表的所有记录到ipdb库的user表里。
mysql> create table ipdb.user select * from passwd;
4:查看ipdb库的user表的表结构
mysql> desc ipdb.user;
5:删除user表的所有记录
mysql> delete from ipdb.user;
6:把name字段设置为index字段
mysql> alter table ipdb.user add index(name);
7:添加编号字段id 在所有字段上方,用来存储记录的编号。
mysql> alter table passwd add id int primary key auto_increment first;
8:修改miaoshu的字段名sex 类型为 enum 且字段值只能是gril 或boy
mysql>update passwd set miaoshu=null;
mysql> alter table passwd change miaoshu sex enum("gril","boy");
9:把gid 在100到500间用户的家目录修改为/root
mysql> update passwd set home="/root" where gid between 100 and 500;
10:把用户是 root bin sync 用户的shell 修改为 /sbin/nologin
mysql> update passwd set shell="/sbin/nologin" where name in ("root","bin","sync");
11:查看 gid 小于10的用户 都使用那些shell
mysql> select shell from passwd where gid<10 group by shell;
13:删除名字以字母d开头的用户。
mysql> delete from passwd where name regexp "^d";
14:查询 gid 最大的前5个用户 使用的 shell
mysql> select shell from passwd order by gid desc limit 5;
15:查看那些用户没有家目录
mysql> select name from passwd where home is null;
16: 把gid号最小的前5个用户信息保存到/bak/passwd.db文件里。
mysql> select * from passwd order by gid asc limit 5 into outfile "/bak/passwd.db";
17:把自己用来登陆系统的用户信息 添加到passwd表里
mysql> insert into passwd values(null,"sw","x",520,520,2,"/home/sw","/bin/bash");
18:删除表中的 mina 字段
mysql> alter table passwd drop mina;
19:设置表中所有字段值不允许为空
mysql> alter table passwd modify uid int(5) not null;
mysql> update passwd set sex="boy";
mysql> alter table passwd modify sex enum("gril","boy") not null;
mysql> alter table passwd modify home varchar(50) not null;
20:删除root 用户家目录字段的值
mysql> alter table passwd modify home varchar(50) ;
mysql> update passwd set home=null where name="root";
21:显示 gid 大于500的用户的用户名 家目录和使用的shell
mysql> select name,home,shell from passwd where gid>500;
22:删除uid大于100的用户记录
mysql> delete from passwd where uid>100;
23:显示uid号在10到30区间的用户有多少个。
mysql> select count(uid) from passwd where uid between 10 and 30;
24:显示uid号是100以内的用户使用shell的类型。
mysql> select shell from passwd where uid<500 group by shell;
25:显示uid号最小的前10个用户的信息。
mysql> select * from passwd order by uid desc limit 10;
26:显示表中第10条到第15条记录
mysql> select * from passwd limit 9,6;
27:显示uid号小于50且名字里有字母a 用户的详细信息
mysql> select * from passwd where uid<50 and name like "%a%";
:28:只显示用户 root bin daemon 3个用户的详细信息。
mysql> select * from passwd where name in ("root","bin","daemon");
29:显示除root用户之外所有用户的详细信息。
mysql> select * from passwd where name not like "root";
30:统计username 字段有多少条记录
mysql> select count(name) from passwd;
31:显示名字里有字母c 用户的详细信息
mysql> select * from passwd where name like "%c%";
用户授权
1:设置数据库管理员的密码为999
[root@mysql mysql]# mysqladmin -hlocalhost -uroot -p password "999":
2:查看当前登陆数据库服务器的用户是谁?
mysql> select user();
3:查看当前登陆数据库服务器用户的权限?
mysql> show grants;
4:查看当前数据库服务器有哪些授权用户。
mysql> select user,host from mysql.user;
5:授权数据库管理员可以在192.168.1.0/24网段内的所有主机访问数据库服务器的所有库,对所有库有完全权限且有授权的权限、 登陆密码tarena。
mysql> grant all on *.* to root@"192.168.1.%" identified by "tarena" with grant option;
6:不允许数据库管理员在数据库服务器本机登录。
mysql> revoke all on *.* from root@"localhost";
mysql> revoke all on *.* from root@"127.0.0.1";
7:授权userweb用户可以从网络中的任意主机访问数据库服务器,对webdb中的regtab表有查看、更新name字段和age字段的权限 密码userweb888。
mysql> grant select,update(name,age) on webdb.* to userweb@"%" identified by "userweb888";
8:授权用户userweb 重置自己的登陆密码为123456,并验证能否使用新密码登陆
mysql> set password for userweb@"%"=password ("123456");
9:数据库管理员修改授权用户userweb的密码为654321,使用新密码能否登陆数据库服务器
mysql> set password for userweb@"%"=password ("654321");
10:撤销以上用户的所有授权并删除授权用户。
mysql> revoke select,update(name,age) on webdb.* to userweb@"%";
mysql>delete from mysql.user where user=”userweb”;
10:只允许数据库管理员从数据库服务器本机登录且有授权的权限。
mysql> grant all on *.* to root@"localhost" identified by "123456" with grant option;
11:解决有登陆权限用户对test库以上权限
mysql> delete from mysql.db where db like "test%";
mysql>flush privisied;
转载于:https://blog.51cto.com/sw5720/1433712