Linux下和Windows下创建Oracle用户和表空间
Linux下和Windows下创建Oracle用户和表空
通过SSH工具或是XShell工具进入远程Linux下。
其中,通过SSH工具登录的界面如下:
其中Host Name是远程服务器的ip地址。User Name是服务器的一个用户名,端口号默认22,Connect进去后可以填写服务器的密码。
通过XShell工具登录的界面如下:
点击上面的New按钮,填写HOST主机地址,即服务器的IP地址,点击OK即可。
输入命令: cd / 到根目录下
启动tomcat
usr/local/tomcat/bin/startup.sh(这是tomcat所在的路径)
关闭tomcat
usr/local/tomcat/bin/shutdown.sh(这个是tomcat所在的路径)
Linux下创建Oracle用户和表空间,赋予权限等操作
通过sqlplus远程连接Oracle,其表示:sqlplus 用户名/密码@远程Oracle服务器地址:Oracle端口号/Oracle的
ORA-01940无法删除当前用户的解决方案
1)查看用户的连接状况
select username,sid,serial# from v$session
(2)找到要删除用户的sid,和serial,并删除
-------------------------------------------
如:你要删除用户'MISPS',可以这样做:(532,4562)这个代表sid,serial
alter system kill session'532,4562';
(3)删除用户
drop user MISPS cascade;
(**)如果在drop后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill了,用如下语句查看:
selectsaddr,sid,serial#,paddr,username,status from v$session where username is notnull;
结果如下(以我的库为例):
status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。
由此可见,MISPS这个用户的session已经被杀死。此时可以安全删除用户。
Windows下创建用户和表空间
先以sysdba的方式登录一次,再按照创建的用户登录一次。
alter user MISPSidentified by MISPS;
通过这种方式创建的用户仍然不可以用,出现的错误是:
如果出现了无法删除当前连接的用户,可以关闭PL/SQL,可能是PL/SQL正在连接着这个用户和。
另外附上:如何查看Linux服务的代码:
1. 查看Linux启动的服务
chkconfig --list 查询出所有当前运行的服务
chkconfig --list atd 查询atd服务的当前状态
2.停止所有服务并且在下次系统启动时不再启动,如下所示:
chkconfig --levels 12345 NetworkManager off
如果想查看当前处于运行状态的服务,用如下语句过滤即可
chkconfig --list |grep on
3.如果只是想当前的设置状态有效,在系统重启动后即不生效的话,可以用如下命令停止服务
service sshd stop
其中,通过SSH工具登录的界面如下:
其中Host Name是远程服务器的ip地址。User Name是服务器的一个用户名,端口号默认22,Connect进去后可以填写服务器的密码。
通过XShell工具登录的界面如下:
点击上面的New按钮,填写HOST主机地址,即服务器的IP地址,点击OK即可。
输入命令: cd / 到根目录下
启动tomcat
usr/local/tomcat/bin/startup.sh(这是tomcat所在的路径)
关闭tomcat
usr/local/tomcat/bin/shutdown.sh(这个是tomcat所在的路径)
Linux下创建Oracle用户和表空间,赋予权限等操作
通过sqlplus远程连接Oracle,其表示:sqlplus 用户名/密码@远程Oracle服务器地址:Oracle端口号/Oracle的
service_name sqlplus sys/nmc601@10.28.17.129:1521/nmcdb.nmc.gov.cn as sysdba; 如果存在TS_MISPS表空间,则删除此表空间和其附带的文件 drop tablespace TS_MISPS including contentsand datafiles cascade constraints; 查看连接着的用 select username,sid,serial# from v$session; //级联删除用户 drop user MISPS cascade; //创建表空间,文件放在Oracle安装目录内部的oradata目录下 create tablespace TS_MISPS datafile '/home/oracle/app/oracle/oradata/TS_MISPS.dbf'size 300m; //让表空间自动变化 alter database datafile '/home/oracle/app/oracle/oradata/TS_MISPS.dbf'autoextend on next 10m; create user MISPS identified by ‘MISPS; //让用户使用这个表空间 alter user MISPS default tablespaceTS_MISPS; //分配session的权限 grant create session to MISPS; //分配创建表的权限 grant create table to MISPS; //分配创建视图的权限 grant create view to MISPS; //分配创建触发器的权限 grant create trigger to MISPS; //这行必须有 grant unlimited tablespace to MISPS; //分配创建索引的权限 grant create any index to MISPS; //分配修改表的权限 grant alter any table to misps; //分配修改存储过程的权限 grant alter any procedure to MISPS; //分配删除表的权限 grant drop any table to MISPS; //赋予删除视图的权限 grant drop any view to MISPS; //赋予删除索引的权限 grant drop any INDEX to MISPS; //赋予删除存储过程的权限 grant drop any procedure to MISPS; //赋予查询,插入,更新,删除表的权限 grant select any table,insert anytable,update any table,delete any table to MISPS; //让表unlock,没有这句会出现ORA-28000: the account is locked错误 alter user MISPS account unlock; //必须赋予connect,resource权限 grant connect,resource,DBA to MISPS; //这一句是修改密码的sql alter user MISPS identified by MISPS;
ORA-01940无法删除当前用户的解决方案
1)查看用户的连接状况
select username,sid,serial# from v$session
(2)找到要删除用户的sid,和serial,并删除
-------------------------------------------
如:你要删除用户'MISPS',可以这样做:(532,4562)这个代表sid,serial
alter system kill session'532,4562';
(3)删除用户
drop user MISPS cascade;
(**)如果在drop后还提示ORA-01940:无法删除当前已链接的用户,说明还有连接的session,可以通过查看session的状态来确定该session是否被kill了,用如下语句查看:
selectsaddr,sid,serial#,paddr,username,status from v$session where username is notnull;
结果如下(以我的库为例):
saddr sid serial# paddr username status 564A1E28 513 22974 569638F4 NETBNEW ACTIVE 564A30DC 514 18183 569688CC NETBNEWINACTIVE 564A5644 516 21573 56963340 NETBNEWINACTIVE 564B6ED0 531 9 56962D8C NETBNEW INACTIVE 564B8184 532 4562 56A1075Cwww.zzzyk.comWUZHQ KILLED
status 为要删除用户的session状态,如果还为inactive,说明没有被kill掉,如果状态为killed,说明已kill。
由此可见,MISPS这个用户的session已经被杀死。此时可以安全删除用户。
Windows下创建用户和表空间
sqlplussys/nmc601@10.28.17.129:1521/nmcdb.nmc.gov.cn as sysdba; drop tablespace TS_MISPS including contentsand datafiles cascade constraints; select username,sid,serial# from v$session; drop user MISPS cascade; create tablespace TS_MISPS datafile 'D:\TS_MISPS.dbf'size 300m; alter database datafile ' D:\TS_MISPS.dbf'autoextend on next 10m; create user MISPS identified by MISPS; alter user MISPS default tablespaceTS_MISPS; grant create session to MISPS; grant create table to MISPS; grant create view to MISPS; grant create trigger to MISPS; grant unlimited tablespace to MISPS; grant create session to MISPS; grant create any index to MISPS; grant alter any table to misps; grant alter any procedure to MISPS; grant drop any table to MISPS; grant drop any view to MISPS; grant drop any INDEX to MISPS; grant drop any procedure to MISPS; grant select any table,insert anytable,update any table,delete any table to MISPS; alter user MISPS account unlock; grantconnect,resource,DBA to MISPS; alter user MISPSidentified by MISPS; commit;
先以sysdba的方式登录一次,再按照创建的用户登录一次。
alter user MISPSidentified by MISPS;
通过这种方式创建的用户仍然不可以用,出现的错误是:
如果出现了无法删除当前连接的用户,可以关闭PL/SQL,可能是PL/SQL正在连接着这个用户和。
另外附上:如何查看Linux服务的代码:
1. 查看Linux启动的服务
chkconfig --list 查询出所有当前运行的服务
chkconfig --list atd 查询atd服务的当前状态
2.停止所有服务并且在下次系统启动时不再启动,如下所示:
chkconfig --levels 12345 NetworkManager off
如果想查看当前处于运行状态的服务,用如下语句过滤即可
chkconfig --list |grep on
3.如果只是想当前的设置状态有效,在系统重启动后即不生效的话,可以用如下命令停止服务
service sshd stop