`

oracle 的 Sql操作流程

阅读更多
没有给你用户和密码的时候:
  1、创建用户:
     打开sql*plus 用户名输入:conn as sysdba
  2、新建用户:
      create user test identified by 123;]
  3、分配相应的权限:
      以sysdba身份重新登录后,
      首先赋予create session的权限
grant create session to test;
这样test用户就能成功登陆进去
但是此时用户还是不能创建表 我们需要赋予用户创建表的权限:
grant create table to test;
但是用户此时还不能创建表 因为需要有使用表空间的权限(相当于 用户有了进房间的钥匙 但是没有进大门的钥匙)
所以也应该赋予相应的权限
grant unlimited tablespace to test;
这个时候用户就拥有了创建表的权限 由于表是用户test的 相应的他就拥有了对创建的表的增删查改的权限了
我们要查看用户拥有什么权限可以通过查询一个系统的视图(数字字典)
select * from user_sys_privs;
这样就可以知道当前用户的权限

撤销权限 revoke create table from test;


场景:
用户test   用户test1
test1的用户创建了个表mytab 并且插入了一些数据
那么 test用户是否可以访问到test1的mytab怎么访问?
答:不可以,必须先授权
test1必须授权给test :grant select on mytab to test;
那么这个时候test可以通过 select * from test1.mytab;来访问mytab中的数据
如果想把某个表(对象)的所有权限都赋予给test那么可以:
grant all on mytab to test;
撤销所有权限
revoke all on mytab to test;


总结
对于系统权限由sys来做
对于对象权限由 谁拥有谁授权
系统权限:
   grant create session to test;
   grant create table to test;
   grant unlimited tablespace to test;

   revoke create session from test;
   revoke create table from test;
   revoke unlimited tablespase from test;

   grant create session to public;  //表示把创建表的权限赋予所有人

   select * from user_sys_privs;  //返回当前用户的所有系统权限

   grant select on mytab to test;
   grant all on mytab to test;

   revoke select on mytab from test;
   revoke all on mytab from test;

  
   对象权限可以控制到列 (更新和插入操作)
   grant update(name) on mytab to test;
   grant insert(id) on mytab to test;

   select * from user_col_privs;
   注意:查询和删除不能控制到列  
   需要有commit的 insert update insert

  权限的传递
  系统权限的传递:
  grant alter table to A with admin option;
  那么A可以通过把该权限传递给B,如果想B也可以传递下去那么可以也带上with admin option
  grant alter table to B;
  对象权限的传递:
  grant select on mytab to A with grant option;
  那么A可以把在表mytab的select权限赋予给B,如果B想也能传递该select权限也可以带上with grant option
  grant select on mytab to B;

----------------------------------------------------------------------------------------------------------

--创建用户
create user keeltest identified by keeltest;
--分配权限
grant create session,create table,create view ,create any index to keeltest;
grant unlimited tablespace to keeltest;


*************************************
授予用户角色:
(system身份)  grant dba to test with admin option;
创建表空间
Sql>create tablespace histdb datafile 'D:\histdb.dbf' size 200m autoextend on next 10m maxsize unlimited;


创建表:
create table stuInfo
(
stuID int primary key,
stuName varchar2(20),
age int
)

查看表空间下的表:
select table_name from dba_tables where tablespace_name='users';
授予用户创建表空间:
grant unlimited tablespace to test;



分享到:
评论

相关推荐

    《精通Oracle SQL 第2版》PDF版本下载.txt

    通过以上内容的学习,读者不仅可以掌握Oracle SQL的基本操作,还能深入了解其高级特性和最佳实践,为解决实际工作中的复杂问题打下坚实的基础。无论是初学者还是有经验的数据库管理员,《精通Oracle SQL 第2版》都是...

    记使用Oracle SQL Developer 迁移MySql 数据至 Oracle.docx

    本文将详细讲解如何使用Oracle SQL Developer工具进行这样的迁移过程,以及如何解决在迁移过程中遇到的问题。 首先,确保你拥有正确的工具。在这个案例中,你需要MySQL 5.6.37、Oracle 11g以及Oracle SQL Developer...

    介绍OracleSQL和PLSQL

    在实际应用中,Oracle SQL和PL/SQL通常结合使用,SQL负责数据的CRUD操作,而PL/SQL则负责更复杂的业务逻辑和流程控制。对于数据库管理员和开发者来说,掌握这两门语言是高效管理和开发Oracle数据库的关键。 文件...

    oraclesql 学习资料

    除了基本的操作外,Oracle SQL 还包含了一些特殊的功能,如窗口函数、游标和存储过程等,这些功能极大地增强了 SQL 的灵活性和功能性。 - **窗口函数**:如 LEAD()、LAG() 等,允许在查询结果集上进行复杂计算。 - ...

    Oracle SQLDeveloper Migration Workbench(MySQL to Oracle)

    Oracle SQL Developer Migration Workbench 为从 MySQL 到 Oracle 的数据库迁移提供了强大的支持,极大地简化了整个迁移流程。通过使用该工具,企业不仅可以节省大量的时间和成本,还能确保数据迁移的准确性和完整性...

    Oracle数据库sql转换mysql数据库工具

    在数据库迁移过程中,这样的工具至关重要,因为它可以简化工作流程,减少手动修改SQL脚本的繁琐工作,同时降低错误率。OracleToMysql.exe很可能就是这个转换工具的执行程序,它可能包含以下功能: 1. **SQL语法转换...

    实用Oracle SQL&PLSQL PPT

    它可以定义变量、控制流程(IF-THEN-ELSE, CASE语句,循环)、处理异常,并且可以直接调用SQL语句。PL/SQL块通常由声明部分、执行部分和异常处理部分组成。存储过程、函数、触发器和包是PL/SQL的主要应用形式。存储...

    Oracle SQL语法速查

    本速查涵盖了Oracle SQL中的关键知识点,包括函数、语句、安装与卸载流程以及常用查询工具的使用。 一、Oracle SQL函数 1. **聚合函数**:如COUNT()用于计算行数,SUM()用于求和,AVG()计算平均值,MAX()和MIN()找...

    oracle sql developer 附带说明

    7. **PL/SQL调试器**:用于调试存储过程、函数和触发器,可以设置断点、查看变量值,跟踪代码执行流程。 8. **版本控制集成**:支持与Subversion、Git等版本控制系统集成,便于团队协作和代码管理。 9. **性能分析...

    oracle sql语句执行流程解析

    在Oracle数据库中,SQL语句是用于进行数据操作、查询、管理等任务的重要工具。一条普通的SQL语句从应用端提交开始,到在数据库中执行完毕,涉及了一系列复杂的过程。理解这些过程,有助于提高数据操作的效率以及进行...

    Oracle SQL Developer Data Modeler实体关系图ERD绘制详解

    本文详尽介绍了使用Oracle SQL Developer Data ...其他说明:文中列举了丰富的示例SQL命令以及步骤性指引,以便帮助读者更好理解各种数据库模型创建与调整的操作流程。同时也涵盖了模型验证与高级设计选项的详细介绍。

    oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句

    这里,`sql_script.sql`包含了所有的SQL操作。 通过这种方式,我们可以使用批处理文件有效地管理和操作Oracle数据库,提高工作效率。同时,这样的自动化流程也适用于其他数据库维护任务,比如数据导入导出、定期...

    Oracle sqldeveloper(2)

    11g版本的集成意味着用户在安装Oracle数据库时,无需单独下载和安装SQL Developer,简化了安装流程。随着Oracle数据库的不断更新,SQL Developer也在持续改进,增加了更多特性和对新数据库版本的支持。 使用SQL ...

    [英文]《精通Oracle SQL》(CHM格式)

    13. **PL/SQL编程**:深入PL/SQL,Oracle的数据库编程语言,包括变量、流程控制、异常处理等。 14. **性能优化**:讨论SQL性能监控和优化的方法,如执行计划分析、索引优化、查询重写和绑定变量。 15. **高级主题*...

    Oracle 10g SQL操作和PLSQL所有命令集合

    Oracle 10g是一款强大的关系型数据库管理系统,其SQL(结构化查询语言)和PL/SQL(过程化SQL)是数据库管理员和开发人员进行数据管理、处理和应用开发的重要工具。下面将详细介绍这些主题中的关键知识点。 首先,...

    oraclesql高级编程 随书脚本

    《Oracle SQL 高级编程》一书的随书脚本集合是学习和深入理解Oracle数据库管理及SQL高级特性的宝贵资源。这些脚本涵盖了从基础查询到复杂的数据操作、存储过程、函数以及触发器等多个方面,旨在帮助读者提升在Oracle...

    oracle sql de

    一个Java项目构建工具,尽管它与Oracle SQL Developer直接关联性较小,但在构建和管理包含SQL Developer在内的Java应用程序时,Maven可以发挥重要作用,管理依赖关系并自动化构建流程。 总的来说,Oracle SQL ...

    Oracle SQL Tuning.pdf

    在Oracle环境中,SQL语句的处理流程主要包括解析、优化和执行三个阶段。解析阶段,Oracle会检查SQL语句的语法和逻辑是否正确;优化阶段,Oracle的查询优化器会分析SQL语句,选择最有效的执行计划;最后是执行阶段,...

    oracle sql执行过程(流程图)

    Oracle SQL执行过程是一个复杂而精细的流程,它涉及到多个阶段,确保查询语句能够高效、准确地执行。以下是对这个过程的详细解析: 1)**语法分析**: 在SQL语句被提交给数据库引擎后,首先进行的是语法分析。这个...

Global site tag (gtag.js) - Google Analytics