oracle - Oracle SYSDBA 连接
问题描述
第一次从SQLPlus命令行工具连接Oracle数据库,为什么总是这样连接
"sys as sysdba"
有人能告诉我这件事的意义吗?
为什么我们不在 MYSQL 中这样做呢?
我是 Oracle 的新手,这个问题可能听起来很傻。我正在学习使用 Oracle 11g XE。
解决方案
SYS
并且SYSTEM
是管理用户,他们有点“拥有”数据库。数据字典存储在SYS
模式中,所以 - 如果你搞砸了,你很可能会破坏数据库。因此,永远不要搞砸它——只将它用于必要的管理任务。永远不要碰任何SYS
拥有的表(想“如果我改变它,我会做到这一点)。更好的是,创建你自己的用户并授予它DBA
特权 - 它几乎可以做你想做的一切。
SYSDBA
是自动授予用户的特权SYS
;它允许它执行高级管理任务(例如备份和恢复或升级数据库)。SYSTEM
没有;as sysdba
这就是为什么您在连接时不指定as 的原因SYSTEM
。
此外,SYSDBA
尽管数据库尚未打开,但权限允许您连接到数据库实例 - 并允许您启动它。
说你“总是连接为sys as sysdba
” - 好吧,你不必“总是”这样做。您可以使用其他预定义用户(例如 Scott 或 HR(人力资源))。默认用户名/密码组合是“scott/tiger”和“hr/hr”。但是,它们很可能已被锁定,因此您无法建立连接。这就是为什么您以 身份连接SYS
,解锁这些帐户(或创建新帐户,具体取决于您想要做什么),然后以其他用户身份连接。
更多信息在这里:
为什么你在 MySQL 中没有它?可能是因为 MySQL 不是 Oracle。
最后,由于您是 Oracle 新手,我建议您访问并收藏此页面:Oracle 数据库 10gR2 文档。是的,它有点“旧”,你不使用那个版本,但它是最后一个将“入门”和“最受欢迎”书籍分开的版本,便于查找和阅读。我建议你阅读:
- 概念,了解什么是 Oracle 以及它是如何工作的
然后,根据您想要做什么/成为(开发人员或 DBA),选择例如
- 2 天 DBA
- 管理员指南
或者
- SQL 参考
- PL/SQL 用户指南和参考
- 应用程序开发人员指南 - 基础知识
当然,您可以找到这些适用于您使用的数据库版本 (11g) 的书籍,它位于:Oracle 数据库在线文档 11g 第 2 版 (11.2)但是 - 正如我所说 - 它不如 10g 好。
祝 Oracle 好运,尽情享受吧!
推荐阅读
- c# - .net 4.5.1 不支持在后面的代码中编写“System.AppContext”吗?
- python - 如何在 Python unittest 中添加用于集合比较的相等函数
- angular - 如何在 ag-grid 中的一行顶部覆盖控件?
- python - 在没有循环的情况下更改数据框单元格的类型
- ios - 为什么 CarPlay 在真车中会崩溃?
- angular - 我想运行一个从 github 下载的 Angular 项目。但我看到有几个依赖错误
- angular - “FilterMetadata | 类型”上不存在属性“值” > 过滤元数据[]'
- python - 在 python 问题中转向机器人的决策
- docker - Docker:在运行时将自定义端口设置为环境变量,而不是构建
- java - 无法为骆驼计时器创建 MockEndpoint