背景
测试Oracle数据库创建同义词功能。
创建用户
-- 切换到 SYS 用户
CONNECT SYS/your_password AS SYSDBA;
-- 创建 HR 用户
CREATE USER HR IDENTIFIED BY hr_password;
GRANT DBA TO HR;
-- 创建 SCOTT 用户
CREATE USER SCOTT IDENTIFIED BY scott_password;
GRANT DBA TO SCOTT;
创建基础表及数据
-- 切换到 HR 用户
CONNECT HR/hr_password;
-- 创建员工表
CREATE TABLE employees (
employee_id NUMBER PRIMARY KEY,
first_name VARCHAR2(50),
last_name VARCHAR2(50),
hire_date DATE
);
-- 插入测试数据
INSERT INTO HR.employees (employee_id, first_name, last_name, hire_date)
VALUES (1, 'John', 'Doe', SYSDATE);
COMMIT;
-- 查询数据
SELECT * FROM HR.employees;
创建同义词
-- 切换到SCOTT用户
CONNECT SCOTT/scott_password;
-- 创建同义词
CREATE SYNONYM emp_synonym FOR HR.employees;
-- 查询员工表
SELECT * FROM emp_synonym;
回收权限
-- 切换到 HR 用户
CONNECT HR/your_password;
-- 撤销 SCOTT 用户的查询权限
REVOKE SELECT ON employees FROM SCOTT;
删除用户
-- 切换到 SYS 用户
CONNECT SYS/your_password AS SYSDBA;
-- 删除 HR 用户
DROP USER HR CASCADE;
-- 创建 SCOTT 用户
DROP USER SCOTT CASCADE;