对象和角色

一.撤销对象权限

1.格式

revoke object_privilege on object_name from username;

2.实践

例如:将xiaoming用户查看system.books数据表的权限收回。

disconnect;

connect system/123456;

revoke select on books from xiaoming;

disconnect;

connect xiaoming/123456;

select*from system.books;

二.列对象上的权限

1.任务场景在比如淘宝商品界面,我们在使用过程中会发现某些商品属性不仅乐意查看还可以修改。列对象上的权限就可以实现对象上部分列的操作。insert、update、references这几种的列对象上的权限是可以实现的。

2.格式

grant object_privilege(column_name……) on object_name to user_name;

3.实践

例如:给xiaoming授books数据表上的bookprice数据值修改权限。

测试:

disconnect

connect xiaoming/123456

update system.books

set book_price=25

where book_name='基础化学';

通过测试小明没有books数据表列对象上的操作权限。

第一给xiaoming授修改bookprice列数据的修改权限。

disconnect

connect system/123456

grant update(book_price) on books to xiaoming;

测试:

disconnect

connect xiaoming/123456

update system.books

set book_=25;

where book_name='基础化学';

disconnect

connect system/123456

select book_name,book_price

from book;

三.角色

1.任务场景在软件的授权过程中,我们发现权限种类和用户数量都非常多。我们如何让授权任务量变少,这个时候需要使用角色。

2.角色:为了方便对用户权限的管理,数据库允许一组相关的授权给角色,然后把角色在授权给用户。

3.格式

create role

4.实践

例如:创建teacher、student角色。

disconnect

connect system/123456

create role teacher;

create role student;

四.角色授权

1.格式

grant privilege [on object] to role

2.实践

例如:尝试给角色授权,然后再将角色分配给用户。

第一步创建四个新用户

create user aa identified by 123456;

create user bb identified by 123456;

create user cc identified by 123456;

create user dd identified by 123456;

第二步给teacher角色授权查看system.presses权限。

grant select on books to teacher;

grant select on presses to student;

第三步将teacher,student角色分配给四个用户。

grant teacher,create session to aa;

grant teacher,create session to bb;

grant student,create session to cc;

grant student,create session to dd;

第四步测试授权是否成功

disconnect

connect aa/123456

select*from system.books;

select*from system.presses;

disconnect

connect bb/123456

select*from system.books;

select*from system.presses;

disconnect

connect cc/123456

select*from system.books;

select*from system.presses;

disconnect

connect dd/123456

select*from system.books;

select*from system.presses;

五.删除角色

1.格式

drop role role——name

2.实践

例如:尝试删除teacher、student。

disconnect

connect system/123456

drop role teacher;

drop role student;

六.表空间

1.定义:表空间是数据库中最大的逻辑存储结构,数据中所有的数据、对象都会放到表空间

2.格式

create tablespace tablespace_name

datafile '文件存放路径,文件名'

size

autoextend [on|off] next k|m

maxsize k|m

3.实践

例如:创建一个名为myspace表空间,数据文件存放在E:\class\oracle(提前创建)初始文件大小20m,自动增长每次自增5m,最大100m。

create tablespace myspace

datafile 'E:\class\oracle\datafile\myspace.dbf'

size 20m

autoextend on next 5m

maxsize 100m;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,接下来我来讲一下面向对象角色猜拳的实现。 首先,我们需要定义一个角色类Role,表示游戏中的角色角色有自己的名字和分数: ```python class Role: def __init__(self, name): self.name = name self.score = 0 self.choice = None ``` 接下来,我们需要定义一个游戏类Game,表示游戏的逻辑,游戏中有两个角色: ```python class Game: def __init__(self, role1, role2): self.role1 = role1 self.role2 = role2 def play(self): while True: for role in [self.role1, self.role2]: print(f"{role.name}, 请出拳:(1. 石头 2. 剪刀 3. 布)") role.choice = int(input()) print(f"{role.name}出了{role.choice}") if self.role1.choice == self.role2.choice: print("平局!") elif (self.role1.choice == 1 and self.role2.choice == 2) or \ (self.role1.choice == 2 and self.role2.choice == 3) or \ (self.role1.choice == 3 and self.role2.choice == 1): print(f"{self.role1.name}获胜!") self.role1.score += 1 else: print(f"{self.role2.name}获胜!") self.role2.score += 1 print(f"当前得分:{self.role1.name}:{self.role1.score},{self.role2.name}:{self.role2.score}") if self.role1.score == 3 or self.role2.score == 3: print("游戏结束!") return ``` 在游戏类Game中定义了一个play方法,表示游戏的逻辑。在这个方法中,我们使用了一个while循环,不断让两个角色出拳,判断胜负,并更新得分。当其中一个角色得分达到3分时,游戏结束。 最后,我们可以在主函数中创建两个角色和一个游戏对象,并开始游戏: ```python if __name__ == '__main__': role1 = Role("角色1") role2 = Role("角色2") game = Game(role1, role2) game.play() ``` 以上就是一个简单的面向对象角色猜拳实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值