重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
好像没有直接更改的办法吧,你可以用exp/imp的方法先把数据导出,在导入到另外一个用户下
我们提供的服务有:网站设计制作、成都网站制作、微信公众号开发、网站优化、网站认证、同江ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的同江网站制作公司
或者(先去这个表下面给另外一个用户赋查询权限:grant select on 表名 to user_b;)
然后去b用户下执行:
create table 表名 as select * from user_a.表名 where 1=1;
再去用户a下drop掉这个表
1.创建新的用户;
2.对已有用户进行相关属性的修改操作。
部分属性的修改涉及到生产环境的要申请停业,避免业务交易无法正常进行:
1.创建新用户对原有的业务无影响,风险级别低,但要考虑新用户导入的数据量,避免数据表空间爆满,TEMP空间与归档空间不足。
2.修改用户密码:
1)会导致继续使用之前密码连接数据库的应用出现连接故障,如果该应用有重连机制,超过尝试次数会导致用户被锁,风险级别高。
2)会导致其他库上未进行修改的 DBLINK,无法远程连接到本数据库,风险级别 高。
3.修改用户默认表空间,不影响现有的业务,风险级别低。
4.修改用户默认临时表空间,不影响现有的业务,风险级别低。
5.修改用户 profile,会影响用户会话的连接配额,如连接会话数、密码过期设定、 空闲时间、连接时间等,风险级别中。
6.修改账户状态,会影响会话连接数据库,风险级别高。
7.修改密码口令过期,会影响会话连接数据库,风险级别高。
8.修改用户表空间配额,会影响用户在表空间中的使用额度,风险级别中。
9.修改用户权限,会影响会话的执行权限,风险级别中。
不管是生产环境还是测试环境,备份永远是第一步操作,在评估时也要考虑是否有回退的可能,不要拿开弓没有回头箭当挡箭牌:
1.修改密码时,提前保存密文密码,同时找出到修改库的 DBLINK 也要修改。
2.修改用户属性时,提前保存原来的用户属性信息。
3.同研发确认用户需求,确保不影响业务。
4.安排变更窗口,停止应用。
1.创建新用户
2.用户属性修改
3.修改密码 修改用户密码:
4.修改远程库 DBLINK 的用户密码:
5.修改默认表空间及临时表空间
6.修改 profile
7.修改账户状态(锁定,解锁)
8.修改口令过期
9.修改表空间配额
10.权限,角色授予与回收
1.重新登陆进行账户验证新密码及账户锁定状态是否符合预期。
2.在远程库进行 DBLINK 连接验证是否正常。
3.检查用户账号状态是否正常
4.检查具体的权限是否符合要求
5.应用启动后,日志是否正常,最后观察业务是否正常进行
1.删除新用户
2.修改回用户旧密码:
3.修改远程库 DBLINK 的用户密码:
4.修改默认表空间及临时表空间
5.修改 profile配置
6.修改账户状态(锁定,解锁)
7.修改表空间配额
8.权限,角色授予与回收
1.用户旧密码登录验证是否正常
2.DBLINK连接是否正常
3.查看用户的默认表空间与临时表空间是否与最初状态一致
4.profile配置是否与最初状态一致
5.账户的状态是否与最初状态一致
6.表空间配置是否与最初状态一致
7.权限等是否与最初状态一致。
备注:回退方案的验证最重要的就是第一个步骤的备份与信息记录。这样才能验证回退方案是否达到预期。
在以SYSDBA身份登陆时可以修改其他用户的密码,比如:用户已更改。在以SYSDBA身份登陆时可以修改其他用户的密码,比如:用户已更改。一般来说,oracle数据库安装后,里面有很多个默认账号和密码,比较常用的是:账号:scott
密码:tiger
账号:system
密码:manager
账号:sys
密码:任意字符。当我们想创建一个账号时,可以使用sys登录sysdba后,创建用户(需要授权),代码如下我们一般使用的是用scott登录sysdba,这时候有可能出现账户未解锁的状态,这时候可以用来解锁账户。解锁之后可能会要求你改密码:可以用
你是要改用户名吗?
比如要把用户TEXT改为TEXT_BAK:
SQL select user#,name,password from user$ where name ='TEXT';
USER# NAME PASSWORD
---------- ------------------------------ ---------------------------
78 TEXT 21EDA78F89D6FACD
更改用户名
SQL update user$ set name='TEXT_BAK' where user#=78;
1 row updated.
SQL commit;
Commit complete.
用户名更改后需要清楚缓存数据字典信息。
SQL alter system checkpoint; ----强制写入数据文件
System altered.
SQL alter system flush shared_pool; ----清楚缓存数据字典信息,强制oracle读实际数据(即更改后的数据)
System altered.
并变更用户登录密码。
SQL alter user TEXT_BAK identified by 'aaaaaa';
User altered.
改用户名的用处 至于改名字的用处嘛,在这样一种情景下非常有用.假如某个公司给每个员工一个账户,用户名就是你的英文名.当某个员工arwen要离职了,那就要删除掉用户arwen了.但是我们知道oracle中用户与此用户下面创建的对象是完全绑定到一起的,而不像sql server中表等对象是可以和用户完全分开.这样的话你一删掉用户arwen那下面的数据全没了.假如我们需要那些数据咋整呢,最容易想到的是把所有数据先导出,然后再导入到某个用户下面.但这样比较麻烦.所以如果能改名字就更好点了. 接着用上面的例子.假如又来了新员工,weiwenhp.他是接arwen的班的.所以他很需要用户arwen下面的数据.此时就把用户arwen改成用户weiwenhp.我们登陆数据库时,数据库系统会判断我们的用户名和密码正确不,那我们自然想到这些信息肯定保存在数据库里面哪个地方,肯定会有一个啥保存用户信息的表.没错,所以用户信息保存在表user$中. select * from user$ 用这个sql一查你会看到所有用户名和密码,还有其他一些信息.不过用户名都是加密的.所以即使是管理员也看不到任何用户的密码,只能改用户的密码. 那肯定想,用户名和密码在这那我在这里把名字改下就行了啊.实际上改名就真这么做. select user#, name from user$ where name = 'ARWEN'; --先瞧下arwen的信息,其中user#就是一个序列号,相当于身份证号吧,假如这里是250 update user$ set name = 'WEIWENHP' where user# = 250; --于是用户名就改好了啊.当然是update语句就记得再commit提交下啊. 还要做的工作 我人知道要是改了密码的话马上就生效能用的啊,改名字了咋就不成了呢. 我们知道数据库中很重要的一点是要保证数据一致性,某个地方的数据更改了,相关的地方也得跟着改才好.那这里肯定是因为登陆时读取的用户信息还没有更新.有数据不一致性的情况出现.你可能会想到有时我们用alter更改一些参数信息得重启数据库才能生效.于是你就想不会我改了名还得重启数据库.这也太恐怖了吧. 实际上不用重启数据库拉,你这样强制更新下. alter system checkpoint; alter system flush shared_pool; 你再次登陆就发现可以登陆了啊.而之前的arwen用户就登不了啊.
在以SYSDBA身份登陆时可以修改其他用户的密码,比如:
SQL alter user user01 identified by user10;
用户已更改。
这个是把USER01用户密码修改为USER10