目录
一、前置知识
1.使用ipconfig查看当前电脑的IP地址
2.查看Oracle数据库链接串
二、登录Oracle数据库
三、创建新用户、修改密码并授权
1.创建新用户并解锁
2.修改用户密码
3.授权用户登录
4.查看角色的权限范围
5.授予用户角色
6.撤销CONNECT角色
7.查看哪些用户被赋予了CONNECT角色
8.不同用户的数据访问方法
9.授权用户对指定表进行SELECT、INSERT、UPDATE和DELETE操作
10.撤销权限
四、一些其他概念
一、前置知识
1.使用ipconfig查看当前电脑的IP地址
如果你电脑当前连接的是WIFI,点击属性即可
CMD界面可以ping其他人的网址看一下两个IP之间能否可以正常通信
2.查看Oracle数据库链接串
--HOST :IP
--PORT:端口号,默认1521
--SERVICE_NAME 服务名
连接到名为orcl的服务。其中,主机地址为localhost,端口号为1521
二、登录Oracle数据库
1.记得要将链接串换到一行,然后放到登陆窗口上的 第三个栏位 DATABASE 上
(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1615))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
2.ip:port/SERVICE_NAME
localhost:1521/orcl
3.Oracle数据库各种角色介绍
sysdba:即数据库管理员,权限包括:打开数据库服务器、关闭数据库服务器、
备份数据库、恢复数据库、日志归档、会话限制、管理功能、创建数据库。
SYS 用户必须用 SYSDBA 身份才能登录,SYSTEM 用户可以用普通身份登录。
sysoper:即数据库操作员,权限包括:打开数据库服务器、关闭数据库服务器、
备份数据库、恢复数据库、日志归档、会话限制。
normal:即普通用户,权限只有查询某些数据表的数据。默认的身份是 normal 用户。
4.管理员登录
三、创建新用户、修改密码并授权
在 SYS 用户操作
1.创建新用户并解锁
CREATE USER 用户名 IDENTIFIED BY 密码 ACCOUNT UNLOCK;
CREATE USER s1231 IDENTIFIED BY 123456 ACCOUNT UNLOCK;ALTER USER s729 ACCOUNT LOCK;
2.修改用户密码
alter user 用户名 identified by 密码;ALTER USER s1231 IDENTIFIED BY 123;
3.授权用户登录
-- 语法
GRANT CONNECT,RESOURCE TO 用户名;--授权连接和资源权限给用户
GRANT CONNECT,RESOURCE TO s1231 ;--授权创建会话权限给用户
GRANT CREATE SESSION TO s1231 ;
关键词解释:
ROLE角色:某些权限的集合;CREATE ROLE 角色名;
CONNECT 角色:是授予最终用户的典型权利,最基本的
ALTER SESSION --修改会话
CREATE CLUSTER --建立聚簇
CREATE DATABASE LINK --建立数据库链接
CREATE SEQUENCE --建立序列
CREATE SESSION --建立会话
CREATE SYNONYM --建立同义词
CREATE VIEW --建立视图
RESOURCE 角色:是授予开发人员的,以便他们可以在自己的方案中创建如表、序列、视图等数据库对象
CREATE CLUSTER --建立聚簇
CREATE PROCEDURE --建立过程
CREATE SEQUENCE --建立序列
CREATE TABLE --建表
CREATE TRIGGER --建立触发器
CREATE TYPE --建立类型
4.查看角色的权限范围
SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'CONNECT';
5.授予用户角色
GRANT CONNECT TO s1231;
GRANT RESOURCE TO s1231;
6.撤销CONNECT角色
REVOKE CONNECT FROM user_name;
7.查看哪些用户被赋予了CONNECT角色
SELECT GRANTEE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE = 'CONNECT';
8.不同用户的数据访问方法
SELECT * FROM scott.emp;
9.授权用户对指定表进行SELECT、INSERT、UPDATE和DELETE操作
在 SCOTT 用户操作
GRANT SELECT,INSERT,UPDATE,DELETE ON SCOTT.dept TO s1231;
在s1231用户下访问scott的表
select * from SCOTT.dept;
注意:在Oracle数据库中,不支持使用通配符(*)来表示所有表。
10.撤销权限
REVOKE 权限 ON 表名 FROM 用户;REVOKE SELECT ON dept FROM s1231;REVOKE SELECT,INSERT,UPDATE ON SCOTT.dept FROM s1231;
四、一些其他概念
1. 数据库(Database):
Oracle数据库是一个逻辑存储结构,包含了所有用户数据、系统数据、控制信息和结构对象,如表、索引、视图、存储过程等。
一个Oracle数据库通常由一个或多个数据文件(datafiles)组成,这些文件存储了实际的数据和数据库结构。
数据库还包括控制文件(control files)和重做日志文件(redo log files),这些文件对于数据库的运行和恢复至关重要。
2. 实例(Instance):
Oracle实例是由一组进程和内存结构组成的,它们用于管理数据库的运行。
实例负责处理客户端请求,执行SQL语句,管理数据的存储和访问。
实例由系统全局区(System Global Area, SGA)和后台进程(background processes)组成。
SGA是共享内存区域,包含了数据库的缓存和控制信息;后台进程负责各种任务,如管理重做日志、执行恢复操作等。
-- 查询 Oracle 数据库当前实例的名称和状态 SELECT INSTANCE_NAME,STATUS FROM V$INSTANCE;
3. 关系:
一个Oracle数据库总是由一个实例来管理。换句话说,实例是数据库的运行时环境,它提供了数据库服务。
实例的启动和关闭不会影响到数据库文件本身,但是没有运行的实例,数据库就无法被访问和操作。
实例的状态和配置(如内存分配、进程设置等)会影响数据库的性能和可用性。
4. 多实例配置:
在某些高级配置中,一个Oracle数据库可以由多个实例管理,这种配置称为Real Application Clusters (RAC)。
在RAC中,多个实例可以同时访问相同的数据库文件,提供高可用性和负载均衡。
5. 服务(Service):
在Oracle中,服务(Service)是数据库和实例之间的一个抽象层,它定义了客户端连接到数据库的方式。
一个服务可以关联到特定的实例,允许客户端通过服务名称来访问数据库。
6.dblink
dblink概念:用于实现不同数据库实例间通信的一种机制
创建dblink的作用:实现不同数据库之间的通信和数据访问
数据库实例(instance):数据库实例是一组Oracle后台进程/线程以及一个共享内存区,
这些内存由同一个计算机上运行的线程/进程所共享。
线程:是进程中的一个执行任务(控制单元),负责当前进程中程序的执行;
进程:在内存中运行的应用程序,每个进程都有自己独立的一块内存空间。
--1 在 SYS 用户操作
GRANT -- 授权CREATE PUBLIC DATABASE LINK , -- 创建公共DBLINK权限DROP PUBLIC DATABASE LINK -- 删除公共DBLINK权限
TO 用户;GRANT -- 授权CREATE PUBLIC DATABASE LINK , -- 创建公共DBLINK权限DROP PUBLIC DATABASE LINK -- 删除公共DBLINK权限
TO s1231;--2 切换回来 s1231 这个用户 创建 DATABASE LINK 访问 SCOTT 用户的表
CREATE PUBLIC DATABASE LINK DB_LINK_TO_SCOTT
CONNECT TO SCOTT IDENTIFIED BY "123456" -- 密码是纯数字的必须加双引号而不是单引号,-- 如果密码是字母开头的,则不用加引号
USING 'localhost/ORCL.LAN';---访问
SELECT * FROM EMP@DB_LINK_TO_SCOTT;
SELECT * FROM DEPT@DB_LINK_TO_SCOTT;