【PL/SQL】01用户角色的创建、查看表信息

用户

创建用户 修改用户 删除用户
create user username
identified by password
account lock/unclock表示用户是否处于锁定状态
password expire密码登录后立马失效
alter user name
ccount lock/unclock表示用户是否处于锁定状态
password expire密码登录后立马失效
drop user name[cascade]若用户拥有数据库对象,必须使用cascade关键字

创建用户,授予权限

在这里插入图片描述
在这里插入图片描述

什么是Scheme

在Oracle中,一个用户就是一个Schema,表都是建立在Schema中的,也可以理解为每个用户拥有不同的表。一个用户想访问另外一个用户,也就是另外一个schema的表的时候,

Oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决。

深入理解user和schema的区别
不同的schema之间它们没有直接的关系,不同的schema之间的表可以同名,也可以互相引用(但必须有权限),在没有操作别的schema的操作根权下, 每个用户只能操作它自己的schema下的所有的表。
不同的schema下的同名的表, 可以存入不同的数据(即schema用户自己的数据)。 好比一个房子,里面放满了家具,对这些家具有支配权的是房子的主人(user),而不是房子(schema)。
你可以也是一个房子的主人(user),拥有自己的房子(schema)。可以通过alter session的方式进入别人的房子。 这个时候,你可以看到别人房子里的家具(desc)。 如果你没有特别指定的话,你所做的操作都是针对你当前所在房子中的东西。 至于你是否有权限使用(select)、搬动(update)或者拿走(delete)这些家具就看这个房子的主人有没有给你这样的权限了,或者你是整个大厦(DB)的老大(DBA)。
如果你想调用其他schema的对象(有权限的前提下),但并没有建synonym, 同时又不想把其他schema名字放入代码中,就可以首先使用
alter session set current_schema=<schema_name>。

解锁scott用户

在这里插入图片描述
在这里插入图片描述

创建表

在这里插入图片描述

权限管理&角色管理

权限管理 角色管理
概念与作用 权利的责任范围
系统设置的安全规则或者安全策略
权限的集合
简化权限管理
分类 系统权限:能否在数据库上完成动作
对象权限:能否在某个数据库对象上完成某个动作
授予与回收 grant priv to user/role
revoke priv from user/role
创建与删除 create role role
drop role role其中授予与回收相同

用户上授予角色

用户上授予角色

grant role to user;
//将lambor,niuniu关联角色student
grant student to lambor,niuniu;
//如果在授予角色之前用户已经登陆,则需要重新登录后角色对应的权限才能生效

用户上回收角色

revoke role from user;
revoke student from lambor,niuniu;
//如果在回收角色之前用户已经登陆,则需要重新登录后角色对应的权限才能回收

删除用户:必须指定 CASCADE 以删除 ‘SE’

在这里插入图片描述
这说明你要删除的oracle 用户"SE" 下面还有数据库对象,如 table, view 等,这样你删除用户时必须加选项 cascade:

drop user se cascade; 表示删除用户SE,同时删除 SE 用户下的所有数据对象。

或者就先删除 se 下的所有数据对象,使 se 变成一个啥也没有的空用户,再 drop user se;

一般来说要具有 dba 权限的用户才能删除其他用户

创建约束

查询

当前用户下的表

在这里插入图片描述

查询数据库中拥有的账户

在这里插入图片描述

查看能管理的所有用户

在这里插入图片描述

查看当前用户的信息

在这里插入图片描述

创建表

如何将大写字母全部转换为小写

首先先用管理员权限登录

创建表不能在dba权限下,否则无法删除

在这里插入图片描述
在这里插入图片描述
在win10中按shift+f3能把所有小写字母转换成为大写字母,按两次
hhh 然而并没有卵用 因为我把()打成了{}
在网上还查到一种说法是尾部不要打;这个在java中不出错但是在这里也会出现这个错误
在这里插入图片描述

create table infos		
(
stuid varchar2(7) not null,
stuname varchar2(10) not null,
gender varchar2(2) not null,
age number(2) not null,
seat number(2) not null,
enrolldate date,
stuaddress varchar2(50) default '地址不详',
classno varchar2(4) not null

查看表信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

修改表中的约束

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询

找出emp表方便查看
在这里插入图片描述

创建一查询,显示能获得与Scott一样工资和奖金的其他雇员的姓名、受雇日期以及工资。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询职位为SALESMAN或MANAGER,部门编号为10或20,姓名中包含A的员工姓名,职位和部门编号。

在这里插入图片描述在这里插入图片描述
部门编号内不存在10或20的所以改了
在这里插入图片描述

找出部门10中所有经理,部门20中所有办事员以及既不是经理又不是办事员但其工资大于或等于2000的所有员工的详细信息。

在这里插入图片描述
在这里插入图片描述

发布了56 篇原创文章 · 获赞 16 · 访问量 5078

猜你喜欢

转载自blog.csdn.net/qq_40892702/article/details/102495076