mysql数据库表操作及授权

表操作:增删改查

/etc/passwd文件的内容导入 passwd表里。  

mysql>load data infile"/etc/passwd" into table passwd fields terminated by ":";

基于前面的passwd表,完成下列操作:  

1列出uid低于5003个字母的用户  

mysql> select name from passwd where uid<500 and name like "___";

2分别统计bashnologin数 

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;

6name字段设置为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");

9gid  100500间用户的家目录修改为/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号在1030区间的用户有多少个。 

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;