docker中安装oracle,以及oracle登陆、创建用户、用户授权[很详细的教程]
注:确认你已经安装了docker, docker案子网上有很多教程,我也有写, 一搜一大堆,所以这里就不累赘来讲述。在docker下去安装, 我使用的是 docker镜像列表中oracle11g — version: 11.2.0.2 ,镜像名为 jaspeen/oracle-xe-11g ,一直在使用,很稳定,所以推荐。安装步骤:1、直接拉取镜像:docker pull jaspeen/...
注:确认你已经安装了docker, docker案子网上有很多教程,我也有写, 一搜一大堆,所以这里就不累赘来讲述。
在docker下去安装, 我使用的是 docker镜像列表中oracle11g — version: 11.2.0.2 ,镜像名为 jaspeen/oracle-xe-11g ,一直在使用,很稳定,所以推荐。
安装步骤:
1、直接拉取镜像:docker pull jaspeen/oracle-xe-11g (没有的话可以使用 docker search oracle 搜索一个镜像,拉取成功后可以看到如下)
2、下载完成后就运行镜像文件:docker run -p 1521:1521 --name oracle_11g -d --restart=always jaspeen/oracle-xe-11g
3、进入使用docker ps -a 查看镜像是否启动,刚安装的默认是启动好了的,如果没启动,使用 docker start oracle 去启动。[启动成功后,可以看到如下]
4、进去oracle容器去设置dba密码等,也可以直接在里面操作sql : docker exec -it oracle_11g /bin/bash
进入oracle后:
1、oracle默认是安装在oracle用户下的,所以下 su oracle
2、去找到sqlplus 命令所在目录, 本镜像是在:/u01/app/oracle/product/11.2.0/xe/bin 下。
[也可以自己配置一个环境变量,这就不累赘了]
3、进入目录下,使用 ./sqlplus / as sysdba 进行登陆, 这样就进入oracle了。[这儿没有使用用户名、密码是因为默认操作系统验证已经通过,所以不用输入, 也可以自己输入,不影响。在目录下使用命令记得加: ./ ]
一般使用登陆方式:
> sqlplus /nolog
> conn user/pswd
[这样的话,没有日志,是不能看到密码的,直接登陆的话:sqlplus conn user/pswd 这种情况别人是可以看到密码的。]
4、修改dba的密码:
> alter user sys identified by newpassword;
> alter user system identified by newpassword;
> alter profile default limit PASSWORD_LIFE_TIME UNLIMITED [设置密码时效,可以不管]
现在就可以通过dba帐号进行登陆了, 也可以使用工具进行登陆,默认SID :XE
创建用户并授权:
一般给别人不可能给DBA帐号,所以必须为其创建帐号:
1、create user xxx identified by password;
2、创建后你会发现你不能登陆,是因为没有授权,所以需要授权登陆权限:grant create session to xxx
3、登陆后你发现你没法建表、也没有表目录(使用管理工具的看不到你建的表的列表)等,还是权限不够,所以继续授权:
> grant create table,unlimited tablespace to xxx;
> grant select any table to xxx;
> GRANT UPDATE ANY TABLE,DROP ANY TABLE,INSERT ANY TABLE TO xxx
给角色授予了select any table 权限后发现还是不能查询系统表,原因:
与oracle 的参数O7_DICTIONARY_ACCESSIBILITY有关;该参数默认是false,这种情况下,select any table是不包含sys用户下的表的权限的。如果要select any table 包含sys下的表,则需将该参数改为true后将数据库重启才生效。
即执行一下语句:> alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;
再重启数据库就ok啦。
以上就是全部,希望对大家有帮助。
更多推荐
所有评论(0)