最近在学习数据库的 主从复制 里面涉及到了关于用户及其管理权限的赋予,之前一直没有认真的学习这个。
现在想具体的学习一下。
--
为什么 数据库 要实现多用户管理?
举个最简单的例子,你需要和第三方做对接,建立了一个中间库,你不能让对方去操作所有的库吧,
MySQL 默认 root 用户,但是这个用户权限太大,一般只在管理数据库时候才用。
--
如何新建和删除用户?
新建一个用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; user_name:要创建用户的名字。 host:表示要这个新创建的用户允许从哪台机登陆,如果只允许从本机登陆,则 填 ‘localhost’ ,如果允许从远程登陆,则填 ‘%’ password:新创建用户的登陆数据库密码,如果没密码可以不写。
这时虽然建立了新用户,但是并未分配给这个用户相对应的权限。所以直接使用这个账号登录的话报错。
删除一个用户
DROP USER username@localhost;
--
那如何给用户授予我们的权限呢?
GRANT privileges ON databasename.tablename TO 'username'@'host'; privileges:表示要授予什么权力,例如可以有 select, insert,delete,update等,如果要授予全部权力,则填 ALL databasename.tablename:表示用户的权限能用在哪个库的哪个表中,如果想要用户的权限很作用于所有的数据库所有的表,则填 *.*,*是一个通配符,表示全部。 'username'@'host':表示授权给哪个用户。
如何撤销我们的权限呢?
REVOKE privileges ON database.tablename FROM 'username'@'host'; 例如:REVOKE SELECT ON *.* FROM 'zje'@'%';
--
修改密码呢?
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
--
具体的权限都可以在 mysql.user里面看到。之后学习到这个其他方面的在回来补充。
--
参考: