Oracle中用户的基本操作
创建用户
1.首先登陆到系统用户sys(sys用户具有创建用户的权限)。
2.然后在代码编辑框写入创建用户的代码。
语法:CREATE USER user_name IDENTIFIED BY password
[ACCOUNT LOCK|UNLOCK] lock:给用户上锁;unlock:解锁用户。(和connnect角色无关)
[DEFAULT TABLESPACE default_tablespace] default_tablespace:用户的默认表空间,用于储存数据库对象。如果忽略此参数,则默认存储到SYSTEM表空间
[TEMPORARY TABLESPACE temporary_tablespace]; temporary_tablespace:是临时对象默认存储的表空间,包括临时表。如果忽略此参数,则默认存储到SYSTEM表空间
示例:CREATE USER student IDENTIFIED BY 123456;创建了一个student用户,登陆密码为123456.
给用户分配权限
1.如果想让用户在数据库里完成一些任务,需要相应的给用户授予权限。如:如果想让用户连接到数据库,必须授予用户CREATE SESSION的系统权限。
2.授权必须通过一些特殊用户授权(例如SYSTEM),通过GRANT语句来完成。下表列出了用户可能用到的权限。
系统权限 |
允许用户的操作 |
CREATE SESSION |
连接到数据库 |
CREATE SEQUENCE |
创建序列,用来生成一系列的数值 |
CREATE SYNONYM |
创建同义词 |
CREATE TABLE |
在用户架构中创建表 |
CREATE ANY TABLE |
在任意架构中创建表 |
DROP TABLE |
从用户架构中删除表 |
DROP ANY TABLE |
在任意构架中删除表 |
CREATE PROCEDURE |
创建存储过程 |
EXECUTE ANY PROCEDURE |
在任意架构中执行存储过程 |
CREATE USER |
创建用户 |
DROP USER |
删除用户 |
CREATE VIEW |
创建视图 |
语法:GRANT CREATE SESSION TO student;给用户student分配连接的权限。
CONNECT角色:主要应用在临时用户,特别是那些不需要建表的用户,通常只赋予他们CONNECT角色,拥有CONNECT角色可以与服务器建立连接会话(SESSION,客户对服务器连接称为会话。)
RESOURCE角色:更可靠的和正式的用户可以授予RESOURCE角色.RESOURCE角色提供给用户创建表,序列,过程(procedure),触发器(tigger),索引(index)等。
一般情况下,一个普通的用户,如scott,拥有connect和resource权限即可进行常规的数据库开发工作。
3.分配了权限之后的用户也可以给别的用户分配它自身所拥有的权限,但是前提是它被分配权限的时候最后有WITH ADMIN OPTION字样。
撤销用户权限
1.关键字:REVOKE.
示例:REVOKE CONNECT FROM student;
2.注意:如果student用户给别的用户分配了权限,那么撤销student的权限时,student用户分配权限的用户的权限不会改变。
修改用户密码
1.一般修改的时候都会用到ALTER关键字来打头,就如创建时候一样使用的关键字是CREATE。
语法:ALTER USER student IDENTIFIED BY 111111;修改student用户的密码为111111.
2.我们也可以用password来可视化修改密码。
student用户下和sys用户下都可以:
2-1.语法:CONN student/123456
PASSWORD;
password必须放在下一行。
2-2语法:CONNECT student/123456
PASSWORD;
password必须放在下一行。
查询用户信息
1.在Oracle数据库中,可以通过DBA_USERS查询出包含与用户和用户特征相关的信息。(它查出来的是所有用户的信息)
语法:SELECT username,user_id,password,default_tablespace
FROM dba_users;
2.如果要查询当前用户的信息,则可以登录你想查询的用户,然后使用Select * from user_role_privs;语句来查看它的信息。
删除用户
1.关键字DROP,例如删除student用户。
示例:DROP USER student [cascade --作用是级联删除即删除用户的对象(表。。),但注意删除是这些对象没有被其它用户访问];
2.注意:在删除用户时,如果用户架构包含对象(如,表),那么在删除用户的时候可以在DROP USER语句的用户名后面使用CASCADE关键字进行级联删除。但是需要注意是的是,要确保用户中的这些对象没有其他用户还需要访问。