ORACLE用户和权限
每个用户都有一个默认表空间和一个临时表空间,因此操作用户的顺序一般是先创建表空间,然后创建用户,之后赋权。
1.创建表空间
1.1 创建临时表空间
create temporary tablespace test_tmp tempfile '/home/oracle/araclexe/app/oracle/product/test_tmp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; |
1.2 创建数据表空间
create tablespace test logging datafile '/home/oracle/araclexe/app/oracle/product/test.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; |
2.创建用户并指定表空间
2.1 创建用户
create user user_test identified by password default tablespace test temporary tablespace test_tmp; |
2.2 修改用户配置
思路是先创建profile,之后将profile指定给对应的用户即可
-- 创建profile,允许登录最大错误数为2次,超过两次则锁定用户2天 create profile test_pro_1 limit failed_login_attempts 2 password_lock_time 2; -- 将创建的profile指定给用户test alter user test profile test_pro_1; -- 如果用户被锁定,解锁命令 alter user test account unlock; -- 修改profile,规定口令有效期10天,10天之内需要修改,最大宽限两天 alter profile test_pro_1 limit password_life_time 10 password_grace_time 2; -- 修改用户配置为默认 alter user test1 account default; |
2.3 修改用户密码
Alter user test identified by ‘密码’;
2.4 删除用户
Drop user test [cascade]
当添加上级联删除标记cascade时,所删除的用户所对应的表空间和临时空间以及相关联的一切数据均会被删除。
当级联删除提示当前表空间有用户连接时,使用如下命令查看连接的用户信息:
select username,sid,serial# from v$session where username='test';
2.5 查看用户
show user; --查看当前登陆用户
select * from dba_users; --查看数据库里面所有用户
select * from all_users; --查看你能管理的所有用户
select * from user_users; --查看当前用户信息
3.用户权限
ORACLE中的权限有系统权限和对象权限,系统权限可以指定运行用户执行某些数据库操作,如:创建表,对象权限允许用户对数据库对象进行指定操作。
3.1 使用角色进行赋权
ORACLE默认有三个角色,分别是connect、resource、dba,CONNECT角色允许用户连接数据库,RESOURCE角色允许用户创建相关的表,序列等,DBA角色管理员角色,最高权限角色
赋权的语句为:
-- 授权 GRANT CONNECT,RESOURCE,DBA TO test; -- 取消授权 REVOKE DBA FROM test; -- 查看用户权限 select * from dba_sys_privs where grantee=”test”; |
3.2 使用权限进行赋权
-- 授权 GRANT SELECT,INSERT,UPDATE ON [字段名]表名 TO test; -- 取消授权 REVOKE INSERT ON 表名 FROM test; |
3.3 自定义角色并赋权
-- 创建角色 Create role test_role_1; -- 给角色授权 Grant create session,create table to test_role_1; -- 将角色赋给用户 Grant test_role_1 to test; -- 查看角色拥有的权限 Select * from dba_sys_privs d where d.grantee=”角色名”; -- 查看角色 Select * from dba_roles; -- 查看角色拥有的系统权限 Select * from role_sys_privs r where r.role=”角色名”; -- 查看角色拥有的对象权限 Select * from dba_tab_privs r where r.role=”角色名”; -- 查看用户的系统权限 Select * from dba_tab_privs d where d.grantee=”用户名”; -- 查看用户的对象权限 Select * dba_sys_privs d where d.grantee=”用户名”; |
4.oracle的编码
-- 查看服务器编码
select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';
-- 查看客户端编码
select * from nls_instance_parameters where parameter='NLS_LANGUAGE';