33.Oracle的Sid重复问题

这篇具有很好参考价值的文章主要介绍了33.Oracle的Sid重复问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

oracle安装sid重复问题

Oracle卸载后再次安装,设置的SID相同出现“指定的SID在本机上已经存在。请指定一个不同的SID。” 

1. SID简介

SID也就是安全标识符(Security Identifiers),是标识用户、组和计算机帐户的唯一的号码。在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SID。Windows 2000 中的内部进程将引用帐户的SID,而不是帐户的用户或组名。如果创建帐户,再删除帐户,然后使用相同的用户名创建另一个帐户,则新帐户将不具有授权给前一个帐户的权力或权限,原因是该帐户具有不同的SID 号。安全标识符也被称为安全 ID 或 SID。

2. SID的作用

用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给 Windows NT,然后 Windows NT 检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,Windows NT将会分配给用户适当的访问权限。
访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。

3. SID号码的组成

如果存在两个同样SID的用户,这两个帐户将被鉴别为同一个帐户,原理上如果帐户无限制增加的时候,会产生同样的SID,在通常的情况下SID是唯一的,他由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。

一个完整的SID包括: 
    · 用户和组的安全描述
    · 48-bit的ID authority
    · 修订版本
    · 可变的验证值Variable sub-authority values
    
    例:S-1-5-21-31044058 8- 2 500 36847- 5 803 895 05-500 
    我们来先分析这个重要的SID。
    第一项S表示该字符串是SID;
    第二项是SID的版本号,对于2000来说,这个就是1;
    然后是标志符的颁发机构(identifier authority),对于2000内的帐户,颁发机构就是NT,值是5。
    然后表示一系列的子颁发机构,前面几项是标志域的,最后一个标志着域内的帐户和 组。

4. SID的获得

开始-运行-regedit32-HKEY_LOCAL_MACHINESAMSAMDomainsBuiltinAliasesMembers,找到本地的域的代码,展开后,得到的就是本地帐号的所有SID列表。 

其中很多值都是固定的,比如第一个000001F4(16进制),换算成十进制是500,说明是系统建立的内置管理员帐号administrator,000001F5换算成10进制是501,也就是GUEST帐号了,详细的参照后面的列表。

这一项默认是system可以完全控制,这也就是为什么要获得这个需要一个System的Cmd的Shell的原因了,当然如果权限足够的话你可以把你要添加的帐号添加进去。

或者使用Support Tools的Reg工具:
    reg query "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList
还有一种方法可以获得SID和用户名称的对应关系: 
    1. Regedit32: 
        HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion ProfileList
    2. 这个时候可以在左侧的窗口看到SID的值,可以在右侧的窗口中Profi eImagePath看到不同的SID关联的用户名,
        比如%SystemDrive%Documents and SettingsAdministrator.momo这个对应的就是本地机器的管理员SID
        %SystemDrive%Documents and SettingsAdministrator.domain这个就是对应域的管理员的帐。
        另外微软的ResourceKit里面也提供了工具getsid,sysinternals的工具包里面也有Psgetsid,其实感觉原理都是读取注册表的值罢了,就是省了一些事情。

5. Oracle SID重复解决方案

Oracle卸载后再次安装,设置的SID相同出现“指定的SID在本机上已经存在。请指定一个不同的SID。”
实现方法: 
    1、开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。 
    2、开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer 卸装所有Oracle产品,但Universal Installer本身不能被删除 
    3、运行regedit,选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE,按del键删除这个入口。 
    4、运行regedit,选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services,滚动这个列表,删除所有Oracle入口。
    5、运行regedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application,删除所有Oracle入口。
    6、开始->设置->控制面板->系统->高级->环境变量 删除环境变量CLASSPATH和PATH中有关Oracle的设定 
    7、从桌面上、STARTUP(启动)组、程序菜单中,删除所有有关Oracle的组和图标 
    8、删除\Program Files\Oracle目录 
    9、重新启动计算机,重起后才能完全删除Oracle所在目录 
    10、删除与Oracle有关的文件,选择Oracle所在的缺省目录C:\Oracle,删除这个入口目录及所有子目录,并从Windows 2000目录(一般为C:\WINNT)下删除以下文件ORACLE.INI、oradim73.INI、oradim80.INI、 oraodbc.ini等等。
    11、WIN.INI文件中若有[ORACLE]的标记段,删除该段
    12、如有必要,删除所有Oracle相关的ODBC的DSN 
    13、到事件查看器中,删除Oracle相关的日志
说明:
    其中,4、5两条为重点删除对象,通常删除时我们易删除5,但不易发现6、7. 
    如果有个别DLL文件无法删除的情况,则不用理会,重新启动,开始新的安装, 
    安装时,选择一个新的目录,则,安装完毕并重新启动后,老的目录及文件就可以删除掉了。

文章来源地址https://www.toymoban.com/news/detail-614331.html

到了这里,关于33.Oracle的Sid重复问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • flutter:数据持久化

    保存数据到本地磁盘是应用程序常用功能之一,比如保存用户登录信息、用户配置信息等。而保存这些信息通常使用 shared_preferences ,它保存数据的形式为 Key-Value (键值对),支持 Android 和 iOS。 shared_preferences 是一个第三方插件,在 Android 中使用 SharedPreferences ,在 iOS中使用

    2024年02月09日
    浏览(34)
  • 【2023】Redis数据持久化

    Redis是基于内存的NoSQL数据库,读写速度很快,但是存储在内存中的Redis数据会在服务器重启后丢失。 然而在一些场景中,需要长久的保存数据,所以需要把内存中的数据持久化的保存在硬盘中。 Redis持久化提供两种方式: 1️⃣:AOF(Append Only File)只追加文件 2️⃣:RDB(

    2024年02月10日
    浏览(41)
  • Docker容器数据持久化

    Docker容器数据卷:volumes        数据卷是经过特殊设计的目录,可以绕过联合文件系统,为一个或者多个容器提供访问,数据卷设计的目的,在于数据的永久存储,它完全独立于容器的生存周期,因此,docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的垃圾收集

    2024年02月10日
    浏览(44)
  • redis数据安全(一)数据持久化

     一、Redis数据安全措施: 1、将数据持久化至硬盘 2、将数据复制至其他机器; 复制是在数据持久化的基础上进行的。 二、将数据持久化至硬盘 1、介绍:Redis是一个基于内存的数据库,它的数据是存放在内存中,内存有个问题就是关闭服务或者断电会丢失。Redis的数据也支持

    2024年01月20日
    浏览(29)
  • Flutter 应用数据持久化指南

    1.1 什么是数据持久化? 数据持久化是指将应用程序中的数据保存在持久存储介质(如硬盘、数据库等)中的过程。在计算机科学领域,持久化数据是指数据在程序退出或系统关机后仍然存在的能力。这种持久性使得数据可以在不同的应用程序运行周期之间保持不变,以便稍

    2024年04月10日
    浏览(41)
  • Docker啥是数据持久化?

    ​ 在容器层的 UnionFS(联合文件系统)中对文件/目录的任何修改,无论是手工修改还是容器在运行过程中的修改,在该容器丢失或被删除后这些修改将全部丢失。即这些修改是无法保存下来的。若要保存下来这些修改,通常有两种方式: 定制镜像持久化:将这个修改过的容

    2024年02月15日
    浏览(31)
  • Redis 7 教程 数据持久化

            RDB 持久化以指定的时间间隔执行数据集的时间点快照 。         把某一时刻的数据和状态以文件的形式写到磁盘上,即使出现故障宕机,快照文件也不会丢失,数据的可靠性得到保证。快照文件就是RDB(Redis DataBase)文件(dump.rdb)          在指定的时间间隔内将

    2024年02月11日
    浏览(31)
  • Docker 数据持久化方案详解

    目录 一、Docker数据持久化概述 1.1联合文件系统 1.2容器的数据卷 1.2.1 什么是数据卷 1.2.2 数据卷特点 1.2.3 Docker提供三种方式将数据从宿主机挂载到容器 二、 Docker持久化方案 2.1 查看volume 基本命令使用方法 2.2 volume持久化方案 2.2.1volume简介 2.2.2.volume特点 2.2.3 挂载指定volume 2.

    2024年02月07日
    浏览(39)
  • 【pinia持久化存储】使用pinia和pinia-plugin-persistedstate依赖进行数据的持久化存储

    使用pinia和pinia-plugin-persistedstate依赖进行数据的持久化存储。 存储方式 : localStorage sessionStorage pinia-plugin-persistedstate 中文官网 pinia 中文官网 安装和使用 pinia ,请参考使用pinia文章。 安装 pinia-plugin-persistedstate : 使用前先将 pinia-plugin-persistedstate添加到pinia实例上。 在添加的时

    2023年04月17日
    浏览(34)
  • 小程序如何实现登录数据持久化

    在小程序中实现登录数据的持久化可以通过以下几种方式: 使用本地缓存 在用户登录成功后,将登录凭证或用户信息等数据使用  wx.setStorageSync  方法存储到本地缓存中: 在小程序启动时或需要使用登录数据的页面中,通过  wx.getStorageSync  方法读取本地缓存中的数据: 使

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包