MySQL与Oracle 差异比较之七用户权限
程序员文章站
2022-06-24 13:43:07
用户权限
编号
类别
oracle
mysql
注释...
用户权限
编号 | 类别 | oracle | mysql | 注释 |
1 | 创建用户 | create user user_name identified by user_password default tablespace starspace temporary tablespace temp; |
create user user_name identified by user_password; | 1.oracle创建用户 oracle 的默认用户有三个: sys / system / scott. 其中sys和system 是系统用户,拥有dba权限, scott用户是oracle数据库的一个示范账户, 在数据库安装时创建, 不具备dba权限. 创建用户命令: create user user_name identified by user_password [default tablespace tablespace] [temporary tablespace tablespace}; 说明: 每个用户都有一个默认表空间和一个临时表空间,如果没有指定,oracle就将system设置为默认表空间,将temp设为临时表空间. 2.mysql创建用户 创建用户命令: mysql> create user yy identified by '123'; yy表示你要建立的用户名,后面的123表示密码 上面建立的用户可以在任何地方登陆。 如果要限制在固定地址登陆,比如localhost 登陆: mysql> create user yy@localhost identified by '123'; |
2 | 删除用户 | drop user user_name cascade; | drop user user_name; | 1. oracle sql>drop user 用户名; //用户没有建任何实体 sql> drop user 用户名 cascade; // 将用户及其所建实体全部删除 注: 当前正连接的用户不得删除。 2. mysql 自4.1.1以后,删除一个mysql帐户,可以使用drop user 语句了。 不过在5.0.2之前的版本中,drop user语句只能删除没有任何权限的用户。 从5.0.2往后的版本中,drop user语句可以删除任何用户。(当然不能自己删自己)。示例:drop user "garfield"@"localhost"。别忘了加后面的@,不然会报错。 在4.1.1与5.0.2之间的版本中要删除一个mysql帐户,需要进行以下操作。 1) 使用show grants语句查看要删除的mysql帐户都有哪些权限,使用方法如show grants for "garfield"@"localhost"。 2) 使用revoke语句收回用户在show grants里拥有的权限。执行这个语句将删除除user表之外的其它所有权限表中的相关记录,并且收回在user表中该用户拥有的全局权限。 3) 使用drop user 语句把用户从user表中删除。 |
3 | 修改密码 | alter user user_name identified by new_password |
mysqladmin -u root -p 123456 password "your password"; |
1.mysql修改密码 第一种方式: 1) 更改之前root没有密码的情况 c:\mysql\bin>mysqladmin -u root password "your password" 2) 更改之前root有密码的情况,假如为123456 c:\mysql\bin>mysqladmin -u root -p123456 password "your password" 注意:更改的密码不能用单引号,可用双引号或不用引号 第二种方式: 1) c:\mysql\bin>mysql -uroot -p密码 以root身份登录 2) mysql>use mysql 选择数据库 3) mysql>update user set password=password('你的密码') where user='root'; 4) mysqlflush privileges; 重新加载权限表 |
4 | 设置用户权限 | grant connect to star -- star角色允许用户连接数据库, 并创建数据库对象 grant resource to star -- star角色允许用户使用数据库中的存储空间. grant dba to star -- dba权限 |
grant all on picture.* to test identified by "test"; | 1. 详见<<oracle vs mysql 用户权限.doc>> 2.1 oracle 权限设置 2. 详见<<oracle vs mysql 用户权限.doc>> 1.4 用户权限设置 |
5 | 回收权限 | revoke select, update on product from user02; | revoke privileges (columns) on what from user | 1. oracle revoke语句的基本格式如下: revoke 权限类型 [(字段列表)] [, 权限类型 [(字段列表)]…]on {数据库名称.表名称}from 用户名@域名或ip地址 例如,管理员撤销用户admin@localhost对数据库xsxk所拥有的创建、创建数据库及表的权限,并撤销该用户可以把自己所拥有的权限授予其他用户的权限,可使用以下命令。 mysql>revoke create,drop on xsxk.* from admin@localhost; mysql>revoke grant option on xsxk.* from admin@localhost; revoke语句中的“用户名@域名或ip地址”部分必须匹配原来grant语句中的“用户名@域名或ip地址”部分,而“权限类型”部分可以是所授权的一部分权限。而且,revoke只能撤销权限,不能删除用户账户,在授权表user中仍保留该用户的记录;用户仍可以连接到数据库服务器。如果要完全删除用户,则使用前面提到的delete语句从user表中删除该用户记录。 2. mysql 要取消一个用户的权限,使用revoke语句。revoke的语法非常类似于grant语句,除了to用from取代并且没有indetifed by和with grant option子句: revoke privileges (columns) on what from user user部分必须匹配原来grant语句的你想撤权的用户的user部分。privileges部分不需匹配,你可以用grant语句授权,然后用revoke语句只撤销部分权限。 revoke语句只删除权限,而不删除用户。即使你撤销了所有权限,在user表中的用户记录依然保留,这意味着用户仍然可以连接服务器。要完全删除一个用户,你必须用一条delete语句明确从user表中删除用户记录 |
上一篇: Android实现隐私政策弹窗与链接功能