Oracle表空间用户授权创建dblink等操作

--查询表空间所在目录位置
select t.TABLESPACE_NAME,d.BYTES/1024/1024,d.FILE_NAME from dba_tablespaces t,dba_data_files d 
where t.TABLESPACE_NAME=d.TABLESPACE_NAME 
order by d.BYTES desc 
--创建表空间
CREATE TEMPORARY TABLESPACE AUTO_SAMPLE_TEMP
TEMPFILE 'D:\APP\ORACLE19C\ORADATA\ORCL19C\ORCLPDB19C\AUTO_SAMPLE_TEMP.DBF' SIZE 100M
AUTOEXTEND ON NEXT 50M MAXSIZE 20480M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M


CREATE TABLESPACE AUTO_SAMPLE_DATA
DATAFILE 'D:\APP\ORACLE19C\ORADATA\ORCL19C\ORCLPDB19C\AUTO_SAMPLE_DATA.DBF' SIZE 500M
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
--------------------------------------------
--创建用户 同时设置表空间
CREATE USER AUTO_SAMPLE IDENTIFIED BY 111111
DEFAULT TABLESPACE AUTO_SAMPLE_DATA
TEMPORARY TABLESPACE AUTO_SAMPLE_TEMP
-----------------------------------------------
--授权操作(注:本用户自已已创建的对象自动拥有对该对象的所有权限,包括查询(SELECT)、修改(INSERT/UPDATE/DELETE)、删除(DROP)、修改结构(ALTER)、重新编译等。无需再单独授予任何权限。):

--1. [必须]:允许用户建立数据库会话
GRANT CREATE SESSION TO AUTO_SAMPLE;

--2. [常用]:允许*创建*表、索引、序列、视图、存储过程、触发器等
GRANT CREATE TABLE, 
      CREATE SEQUENCE, 
      CREATE VIEW, 
      CREATE PROCEDURE, 
      CREATE TRIGGER 
TO AUTO_SAMPLE;

--3.[非仅查询则必须]: 在 其永久 表空间上分配无限配额(或指定大小)
ALTER USER AUTO_SAMPLE QUOTA UNLIMITED ON AUTO_SAMPLE_DATA;

---4.[可选,需要查询 其他用户 下对象的],授予 全部 模式(用户) 的查询权限(正常应当指定到某个模式(用户)的具体哪些表或视图等,这里为了方便,但不安全)
GRANT SELECT ANY TABLE TO AUTO_SAMPLE;

---5[可选] 创建私有dblink的权限
GRANT CREATE DATABASE LINK TO AUTO_SAMPLE;
---------------------------------------------
---创建私有dblink,注意要切换到正确的用户下,要以此用户登录,而不是切换"当前正在操作的 Schema"(例如dbeaver顶部第二个Schema下拉菜单切换是不行的)
CREATE DATABASE LINK HGZDQYDBLINK
CONNECT TO AUTO_SAMPLE IDENTIFIED BY "1111111"
USING '(DESCRIPTION =
           (ADDRESS = (PROTOCOL = TCP)(HOST = 199.199.1.235)(PORT = 1521))
           (CONNECT_DATA =
               (SERVICE_NAME = hgny)
           )
        )';
        
---删除私有dblink
DROP DATABASE LINK HGZDQYDBLINK;

 

posted @ 2026-03-02 15:48  dirgo  阅读(0)  评论(0)    收藏  举报