|
你也可以直接通过发出INSERT语句增加同样的用户存取信息,然后告诉服务器再次装入授权表: shell>sql/Index.html'>mysql--user=rootsql/Index.html'>mysqlsql/Index.html'>mysql>INSERTINTOuserVALUES(localhost,monty,PASSWORD(something),Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y)sql/Index.html'>mysql>INSERTINTOuserVALUES(%,monty,PASSWORD(something),Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y)sql/Index.html'>mysql>INSERTINTOuserSETHost=localhost,User=admin,Reload_priv=Y,Process_priv=Y;sql/Index.html'>mysql>INSERTINTOuser(Host,User,Password)VALUES(localhost,dummy,);sql/Index.html'>mysql>FLUSHPRIVILEGES;
取决于你的MySQL版本,对上述,你可能必须使用一个不同数目Y值(在3.22.11以前的版本有更少的权限列)。对admin用户,只用在3.22.11开始的版本具有的更加可读的INSERT扩充的语法。
注意,为了设置一个超级用户,你只需创造一个user表条目,其权限字段设为Y。不需要db或host表的条目。
在user表中的权限列不是由最后一个INSERT语句明确设置的(对dummy用户),因此那些列被赋予缺省值N。这是GRANTUSAGE做的同样的事情。
下列例子增加一个用户custom,他能从主机localhost、server.domain和whitehouse.gov连接。他只想要从localhost存取bankaccount数据库,从whitehouse.gov存取expenses数据库和从所有3台主机存取customer数据库。他想要从所有3台主机上使用口令stupid。
为了使用GRANT语句设置个用户的权限,运行这些命令: shell>sql/Index.html'>mysql--user=rootsql/Index.html'>mysqlsql/Index.html'>mysql>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROPONbankaccount.*TOcustom@localhostIDENTIFIEDBYstupid;sql/Index.html'>mysql>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROPONexpenses.*TOcustom@whitehouse.govIDENTIFIEDBYstupid;sql/Index.html'>mysql>GRANTSELECT,INSERT,UPDATE,DELETE,CREATE,DROPONcustomer.*TOcustom@%IDENTIFIEDBYstupid; (编辑:aniston)
|