前言: 使用 Oracle 开发系统过程中, 会涉及到数据库用户的建立, 及给该用户分配权限. 刚开始接触开发的时候, 对这些操作是一种茫茫然的状态. 后, 经过积累, 对这方面有了一定的认识, 现总结一些, 一则, 巩固自身, 也希望收到大家的指正; 再则, 希望能帮助疑惑的童鞋, 实现人生的小价值, 嘿嘿嘿.
创建用户以及授权代码:
-- Create the user
create user myName -- 创建用户
identified by myPwd -- 设置密码
default tablespace USERS -- 默认表空间 USERS
temporary tablespace TEMP -- 默认临时表空间 TEMP
profile DEFAULT;
-- Grant/Revoke role privileges 给用户 授予 / 撤销 角色权限
grant ctxapp to myName; -- 没有搞清意思, 但是没有这句话, 运行时, 语句好像报错
grant exp_full_database to myName; -- 赋给用户 exp_full_database 权限 有这个权限 就可以执行全库方式的导出
grant imp_full_database to myName; -- 赋给用户 imp_full_database 权限 有这个权限 就可以执行全库方式的导入
-- Grant/Revoke system privileges -- 给用户授予 / 撤销系统权限
grant change notification to myName;
grant create any directory to myName;-- 创建任何文件夹
grant create any table to myName;-- 创建任何表
grant drop any directory to myName;-- 删除任何文件夹
grant execute any procedure to myName;-- 执行任何存储过程
grant unlimited tablespace to myName; -- 无限制的表空间配额
-- 直接将某些角色所有的权限转给用户
grant ctxapp to myName; -- 没有搞清意思, 但是没有这句话, 运行时, 语句好像报错
grant connect to myName;-- 将 connect 角色的权限给 myName 用户
grant dba to myName; -- 将 dba 角色的权限给 myName 用户
grant resource to myName;-- 将 resource 角色的权限给 myName 用户
如上代码所示, 我创建用户的代码共有四个小块,
第一步是创建用户, 并默认 表空间 与 临时表空间 (这两个名词解释, 在网上查阅了一番, 还是有些茫然, 先给出解释的连接, 再希望有心人能为我解惑),
第二步与第三步是授权给该用户一些具体权限, 各权限具体功能可参考注释
第四步是分别将三个角色的权限转给用户, 以下详细介绍这三个角色
DBA: 拥有全部特权, 是系统最高权限, 只有 DBA 才可以创建数据库结构.
RESOURCE: 拥有 Resource 权限的用户只可以创建实体, 不可以创建数据库结构 (比较疑惑这个概念).
CONNECT: 拥有 Connect 权限的用户只可以登录 Oracle, 不可以创建实体 (实体应该就是数据库, 数据表, 字段, 触发器, 存储过程等吧), 不可以创建数据库结构.
对于普通用户: 授予 connect, resource 权限.
对于 DBA 管理用户: 授予 connect,resource, dba 权限.
注: 数据库结构与实体的概念我也有些模糊, 对其的理解只是猜测, 在网上也没有查询到详细概念, 希望专家解惑....
关于各角色的具体权限也可以通过以下 sql 语句进行查询
select grantee,privilege from dba_sys_privs where grantee='RESOURCE' order by privilege;
select grantee,privilege from dba_sys_privs where grantee='CONNECT' order by privilege;
select grantee,privilege from dba_sys_privs where grantee='DBA' order by privilege;
如图: 查询的是 RESOURCE 角色的权限
关于创建用户知识点的总结就到这里了, 还有一些不足的地方, 望大家指正.
另附上在 cmd 命令框架中, 导出, 导入数据库的语句, 请大家一并笑纳, 嘿嘿
导出语句以及实例
exp 用户名 / 密码 @服务器 IP/ORCL file=e:\0202daochu.dmp owner=(用户名)
exp myName/myPwd@127.0.0.1/ORCL file=e:\0202daochu.dmp owner=(myName)
导入语句以及实例
imp 用户名 / 密码 @服务器 IP/ORCL ignore=y full=y file=e:\0202daochu.dmp log=e:\log0202.log
imp myName2/myPwd2@127.0.0.1/ORCL ignore=y full=y file=e:\0202daochu.dmp log=e:\log0202.log
以上语句是将 用户名为 myName 的数据库导出, 在 E 盘生成文件 0202daochu,
并通过导入语句, 将数据库内容导入给 myName2 用户, 并生成日志文件
大体操作流程: ctrl+r , 切出运行程序, 输入 cmd , 在控制台输入以上相应语句, 即可, 如下图为导出 myName 数据库
来源: https://www.cnblogs.com/txqx/p/8404485.html