Oracle Database基礎

1、安裝與鏈接

1.下載Oracle Database express edition

可用Oracle帳號html

2425859797@qq.comsql

lyhJ0070998數據庫

2.安裝,安裝過程會提示設置system用戶的密碼

3.CMD登陸,輸入sqlplus命令,使用system用戶登陸

4.使用navicat鏈接

在navicat中新建Oracle鏈接,填寫鏈接屬性express

Connection Name: 任填oracle

Connection Type: Basic(還有一種類型TNS)ide

Host Name/IP Address: localhost(IP或主機名)spa

Port: 1521(默認,可在listener.ora文件中修改)code

Service Name/SID: ORCL(listener.ora文件中沒有這個SID鏈接,須要手動添加,expression版默認是XE)htm

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。

2、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選項?

新建Oracle實例

用戶默認密碼

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 所有表

3、建立表空間,用戶和表

建立表空間

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 [表空間名];

一、一個用戶只能屬於一個表空間
二、同一個數據庫用例中,用戶名是不能重複的
三、不一樣用戶中能夠建立同名的表
四、表空間建立後須要建立用戶後才能使用,由於任何數據庫對象都須要創建在一個數據用戶上
五、鏈接dba權限的用戶能夠直接訪問其餘用戶的數據庫對象,不然須要相關用戶受權
六、訪問其餘用戶的數據庫對象是時須要加上對象所屬用戶的用戶名

查看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;
相關文章
相關標籤/搜索