--创建表空间: create tablespace test_tablespace datafile 'E:\oracleDB\test.dbf' size 500m; --创建用户: create user test identified by test default tablespace test_tablespace; --给用户赋权限: grant dba to test;
如果建立好用户之后. 不想给用户太多权限. 就可以这样写.
--创建用户 create user test identified by test default tablespace test_tablespace; --让用户可以差看表等数据. ALTER USER test QUOTA UNLIMITED ON test_tablespace; --给用户赋两个基本权限. GRANT CONNECT, RESOURCE TO test;
建立好了用户, 肯定就可能要删除用户:
--删除用户 drop user test cascade;
修改密码:
alter user system identified by manager;
修改用户名:
修改用户名时必须, 使用sysdba的连接登录才能修改用户名. 如果使用JDBC连接, 就必须要这样写才能使用sysdba连接.
Class.forName("驱动名"); Properties conProps = new Properties(); conProps.put("user", "用户名"); conProps.put("password", "密码"); conProps.put("defaultRowPrefetch", "15"); conProps.put("internal_logon", "sysdba"); conn = DriverManager.getConnection("连接URL", conProps);SQL修改语句.
--老用户名一定是大写的. 因为oracle的数据库里保存的都是大写的. 所以新用户名也因该大写. update user$ set name = '新用户名' where name = '老用户名'; --刷新数据库. alter system checkpoint; alter system flush shared_pool; --修改了用户名之后, 密码也失效了. 所以必须修改一下密码. 此处是没有引号的. alter user 用户名 identified by 密码;
创建表:
create table TEST( TEST_ID number(10) PRIMARY KEY, --建立主键. TEST_NAME varchar2(20) default 'XXXX' not null, --建立默认值. 字段不能为空. ); comment on table TEST is '测试表'; --对表的描述. comment on column TEST.TEST_NAME is '用户名'; --对字段的描述.
创建序列:
create sequence SEQ_TEST_ID --序列ID minvalue 1 --最小序列 maxvalue 9999999999999999 --最大序列 start with 1 --开始 increment by 1 --增长大小 cache 8; --高速缓存
新增语句:
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
删除语句:
DELETE FROM 表名称 WHERE 列名称 = 值
DELETE FROM Person WHERE LastName = 'Wilson'
查询语句:
SELECT 列名称 FROM 表名称
select userName, userPwd from test where test.id = 0;修改语句:
UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
查询MD5
--语句查询. select Utl_Raw.Cast_To_Raw(sys.dbms_obfuscation_toolkit.md5(input_string => 'userPwd')) from dual
GUID:
select sys_guid() from dual
查询数据库用户:
select * from dba_users; --查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system select * from all_users; --查看你能管理的所有用户! select * from user_users; --查看当前用户信息 !
select table_name from user_tables;
多条件判断的sql:
select oper.opid, oper.user_name, oper.user_host, case when oper.oper_type = 1 then 'System Manager' else oper.oper_type = 2 then 'USER Manager' end opertype, --别名 case when oper.oper_object_type = 1 then 'User' when oper.oper_object_type = 2 then 'Role' when oper.oper_object_type = 3 then 'Broker' when oper.oper_object_type = 4 then 'QM Manager' when oper.oper_object_type = 5 then 'User Group' when oper.oper_object_type = 6 then 'Msg Flow' when oper.oper_object_type = 7 then 'Queue' end objecttype --别名. from esb_log_user_oper oper;
ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA.
USER_*:有关用户所拥有的对象信息,即用户自己创建的对象信息
ALL_*:有关用户可以访问的对象的信息,即用户自己创建的对象的信息加上
其他用户创建的对象但该用户有权访问的信息
DBA_*:有关整个数据库中对象的信息
(这里的*可以为TABLES,INDEXES,OBJECTS,USERS等。)
1、查看所有用户
select * from dba_user;
select * from all_users;
select * from user_users;
2、查看用户系统权限
select * from dba_sys_privs;
select * from all_sys_privs;
select * from user_sys_privs;
3、查看用户对象权限
select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;
4、查看所有角色
select * from dba_roles;
5、查看用户所拥有的角色
select * from dba_role_privs;
select * from user_role_privs;
6、查看当前用户的缺省表空间
select username,default_tablespace from user_users;
7、查看某个角色的具体权限
如grant connect,resource,create session,create view to TEST;
8、查看RESOURCE具有那些权限
用SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='RESOURCE';
获取用户有的表的列名:
SELECT * from USER_TAB_COLUMNS t;
查看用户对哪些表的列有操作权限:
SELECT * FROM user_col_privs t;
用户对某些表列进行添加权限. 注意, select权限是没有列权限的. select是通过视图来控制. 而没有使用权限.
既: grant select(列名) on 表明 to 用户 会报错.
grant update(列名) on 表明 to 用户 而使用Update则不会报错.
获取当前登录用户:
select user from dual;
将表的权限授予全体用户:
--public表示是所有的用户,这里的all权限不包括drop grant all on product to public;
union/union all运算:将查询的返回组合成一个结果, union all不过滤重复。
oracle回收站, 设置开关:
alter session set recyclebin=off;
alter system set recyclebin=off;