一、安装与连接
1.下载Oracle Database express edition
可用Oracle账号
2425859797@qq.com
lyhJ0070998
2.安装,安装过程会提示设置system用户的密码
3.CMD登录,输入sqlplus命令,使用system用户登录
4.使用navicat连接
在navicat中新建Oracle连接,填写连接属性
Connection Name: 任填
Connection Type: Basic(还有一种类型TNS)
Host Name/IP Address: localhost(IP或主机名)
Port: 1521(默认,可在listener.ora文件中修改)
Service Name/SID: ORCL(listener.ora文件中没有这个SID连接,需要手动添加,expression版默认是XE)
User Name: system
Password: 123456
错误
错误一:ORA-12514: TNS:listener does not currently know of service requested in connect descriptor。原因是listener.ora文件中没有SID为ORCL的连接信息,需要添加。
错误二:ORA-12518:TNS:listener could not hand off client connection因为使用的是expression版,Service Name应该改为XE。
二、Oracle中的用户角色与权限
- sys 的角色是sysdba;system 的角色是sysoper
- sys 具有create database的权限 system没有该权限
- dba是一种role对应的是对Oracle实例里对象的操作权限的集合。
- sysdba不是权限,当用户以sysdba身份登陆数据库时,登陆用户都会变成sys。
- sysdba 是系统权限,dba是用户对象权限;sysdba身份登陆可以打开,关闭数据库,dba不行。
- sysdba,是管理oracle实例的
- Oracle数据库中Schema和User的关系是一一对应的;决定用户访问的表的范围。
- Oracle中的tablespace(表空间),对应一个数据文件,如 .ora文件;一个用户只属于一个表空间
CMD中使用sys用户登录,用户名后加“as sysdba”:sys as sysdba
问题:哪些用户登录时可以使用as sysdba或者as dba选项?
用户默认密码
system 密码:manager
sys 密码:change_on_install scott 密码:tiger(默认未解锁)显示当前用户:show user
登录sys或system用户,创建自己的用户
create user scott identified by tiger;
授权
grant dba to scott; --授予dba(database administrator)权限
grant connect, resource to scott; grant unlimited tablespace to scott;--授予不限制的表空间 grant select any table to scott; --授予查询任何表 grant select any dictionary to scott;--授予 查询 任何字典删除用户
cascade为可选,级联删除用户下对象
drop user scott [cascade];
查看Oracle实例有哪些用户(dba_users表)
desc dba_users;
select username,account_status from dba_users;查看当前用户和所有用户 select * from all_users; select * from user_users;查看角色(登录用户)权限 select * from role_sys_privs;查看用户或角色权限 select * from dba_sys_privs; select * from user_sys_privs;查看所有角色 select * from dba_roles;查看那些用户具有sysdba或sysoper系统权限 select * from v$pwfile_users解锁用户(例如:解锁OUTLN用户)
alter user outln account unlock;
alter user outln identified by outln;查看用户有哪些表
select * from tab;/*或*/select table_name from user_tables where [rownum<=3];
user_tables 是查自己所有表
all_tables 全部表 dba_tables 全部表三、创建表空间,用户和表
创建表空间
CREATE TABLESPACE [表空间名称] LOGGING DATAFILE [文件路径/文件名.ora] SIZE [初始容量,M为单位,如500M] autoextend on next [扩展容量大小] maxsize [最大容量][extent management local];
创建用户并指定表空间
CREATE USER [用户名称]PROFILE default IDENTIFIED BY [用户密码] DEFAULT TABLESPACE [授权访问的表空间名称] TEMPORARY TABLESPACE temp ACCOUNT UNLOCK;
为用户指定表空间
ALTER USER [用户名] DEFAULT TABLESPACE [表空间名];
1、一个用户只能属于一个表空间
2、同一个数据库用例中,用户名是不能重复的 3、不同用户中可以创建同名的表 4、表空间创建后需要创建用户后才能使用,因为任何数据库对象都需要建立在一个数据用户上 5、连接dba权限的用户可以直接访问其他用户的数据库对象,否则需要相关用户授权 6、访问其他用户的数据库对象是时需要加上对象所属用户的用户名
查看Oracle实例下的所有表空间
select tablespace_name from dba_tablespaces;
创建表
CREATE TABLE student(id number(2) NOT NULL PRIMARY KEY,name varchar2(30) default ' ' NOT NULL);
插入一条记录,查询表
INSERT INTO student (id,name) VALUES (001,'jim');SELECT * FROM student;