当前位置:首页 » 操作系统 » 数据库有哪些权限

数据库有哪些权限

发布时间: 2023-01-12 06:11:21

⑴ Oracle数据库面试题 用户的权限都有哪些

系统权限: 允许用户执行特定的数据库动作,如创建表、创建索引、连接实例等(对用户而言)
对象权限: 允许用户操纵一些特定的对象,如读取视图,可更新某些列、执行存储过程等(是针对表或视图而言的)
1.系统权限
超过一百多种有效的权限(SELECT * FROM SYSTEM_PRIVILEGE_MAP查)
数据库管理员具有高级权限以完成管理任务,例如:
–创建新用户
–删除用户
–删除表
–备份表
系统权限分类:
DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。
对于DBA管理用户:授予connect,resource, dba权限。
a.常用的系统权限:
CREATE SESSION 创建会话
CREATE SEQUENCE 创建序列
CREATE SYNONYM 创建同名对象
CREATE TABLE 在用户模式中创建表
CREATE ANY TABLE 在任何模式中创建表
DROP TABLE 在用户模式中删除表
DROP ANY TABLE 在任何模式中删除表
CREATE PROCEDURE 创建存储过程
EXECUTE ANY PROCEDURE 执行任何模式的存储过程
CREATE USER 创建用户
DROP USER 删除用户
CREATE VIEW 创建视图
2.对象权限
不同的对象具有不同的对象权限
对象的拥有者拥有所有权限
对象的拥有者可以向外分配权限
ORACLE一共有种对象权限
对象权限 表 视图 序列 过程
修改(alter) √ √
删除(delete) √ √
执行(execute) √
索引(index) √
插入(insert) √ √
关联(references) √ √
选择(select) √ √ √
更新(update) √ √

⑵ 数据库的访问权限都有什么

怎样允许他人查看或执行查询,但不能更改数据或查询设计?

答:在安全工作组里,可以指定他人查看查询返回数据的权限。如果是操作查询,还可以允许他们执行查询,即使限制他们不得查看查询的基表或基础查询。

1、在“设计”视图中打开查询。
2、在查询“设计”视图中单击设计网格与字段列表外的任何地方,以选定查询。
3、单击工具栏上的“属性”按钮 ,以显示查询的属性表。
4、将“执行权限”属性设置为“所有者的”。

设置了此属性后,应出现以下情形:

所有用户都具有查询所有者的查看或执行查询权限。
只有查询所有者才能保存更改过的查询。
只有查询所有者才能更改查询的所有权。

注释 也可以设置所有新查询的默认权限。请在“工具”菜单上单击“选项”,再单击“表/查询”选项卡,然后单击想要使用的“执行权限”选项。

问:怎样定义用户级安全?

答:

1、加入一个安全工作组或新建一个工作组信息文件。
要点 要完全确保数据库的安全,请不要使用安装 Microsoft Access
时创建的工作组信息文件所定义的默认工作组。而应该确保定义所加入的工作组的工作组信息文件是使用唯一的工作组 ID (WID) 创建的,否则应该创建一个新的工作组。

2、激活“登录”对话框。
操作方法:启动 Microsoft Access ,打开数据库,
单击“工具”菜单“安全”子菜单中的“用户与组帐号”命令,单击“用户”选项卡,确保在“名称”框中预定义的“管理员”用户帐号呈高亮度显示,单击“更改登录密码”选项卡,单击“新密码”框,然后键入新密码。不要在“旧密码”框中输入任何内容,
在“验证”框中再次键入密码进行确认,然后单击“确定”按钮。退出ACCESS并重新启动ACCESS,就会出现“登录”对话框。

3、创建管理员的用户帐号。
操作方法:
1)打开工作组管理器,按下“联接。。。”按钮,选择 使用在第1 步骤中创建的安全工作组信息文件,退出管理器,启动 Microsoft Access。
要点 如果要确保数据库是完全安全的,请不要使用安装 Microsoft Access
时创建的工作组信息文件中定义的默认工作组,并确保定义所用工作组的工作组信息文件是以唯一的工作组 ID (WID) 创建的,否则就应该重新创建一个工作组信息文件。

2)选择“工具”菜单“安全”子菜单中的“用户与组帐号”命令,单击“用户”选项卡上的“新建”按钮, 在“新用户/组”对话框中,键入管理员帐号名称和个人 ID
(PID),然后单击“确定”按钮新建帐号。
警告 一定要记住正确的帐号名和 PID,包括字母的大小写,并其将其放在安全的地方。如果要重新创建帐号,必须提供其名称和 PID。遗忘或丢失了帐号名和 PID
将无法恢复。

3)在“可用的组”框中,单击“管理员组”,然后单击“添加”按钮。Microsoft Access
将把新的管理员帐号添加到管理员组并在“隶属于”框中显示“管理员组”。

4)单击“确定”按钮新建管理员帐号。

4、退出 Microsoft Access 并以新建的管理员身份登录。

5、删除管理员组中的管理员帐号。
操作方法:选择“工具”菜单“安全”子菜单中的“用户与组帐号”命令,在“用户”选项卡上的“名称”框中输入要移去的用户。在“隶属于”框中,选择要“管理员组”的组,然后单击“删除”按钮。

6、打开要设置安全的数据库。

7、单击“工具”菜单“安全”子菜单中的“用户级安全性向导”命令。

8、根据向导对话框中的指示完成各个步骤。 ]

“用户级安全性向导”将创建一个新的数据库,并将原有数据库中所有对象的副本导出到新的数据库中,然后通过取消用户组对新数据库对象的所有权限,为向导第一个对话框中的选定对象类型设置安全,然后加密新数据库。原有数据库没有进行任何更改。表之间的关系和所有的链接表在新的数据库中都将重建。

现在,只有在步骤 1
中加入的工作组管理员组成员可以访问新数据库中设置了安全的对象。“用户”组则不具备对这些对象的权限。要限制用户和/或组对这些对象的访问必须为其设置权限。

另外,你可以定义不同的试图,这样就给不同的人,不同的信息表示了

⑶ Mysql的权限有哪些

MySQL的权限有哪些?
一.权限表
mysql数据库中的3个权限表:user
、db、
host
权限表的存取过程是:
1)先从user表中的host、
user、
password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;
2)通过权限验证,进行权限分配时,按照useràdbàtables_privàcolumns_priv的顺序进行分配。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db,
tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。
二.MySQL各种权限(共27个)
(以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)
1.
usage
连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。
mysql>
grant
usage
on
*.*
to
‘p1′@’localhost’
identified
by
‘123′;
该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。
2.
select
必须有select的权限,才可以使用select
table
mysql>
grant
select
on
pyt.*
to
‘p1′@’localhost’;
mysql>
select
*
from
shop;
3.
create
必须有create的权限,才可以使用create
table
mysql>
grant
create
on
pyt.*
to
‘p1′@’localhost’;
4.
create
routine
必须具有create
routine的权限,才可以使用{create
|alter|drop}
{procere|function}
mysql>
grant
create
routine
on
pyt.*
to
‘p1′@’localhost’;
当授予create
routine时,自动授予EXECUTE,
ALTER
ROUTINE权限给它的创建者:
mysql>
show
grants
for
‘p1′@’localhost’;
+—————————————————————————+
Grants
for
p1@localhost
+————————————————————————–+
|
GRANT
USAGE
ON
*.*
TO
‘p1′@’localhost’
IDENTIFIED
BY
PASSWORD
‘*′
|
|
GRANT
SELECT,
CREATE,
CREATE
ROUTINE
ON
`pyt`.*
TO
‘p1′@’localhost’|
|
GRANT
EXECUTE,
ALTER
ROUTINE
ON
PROCEDURE
`pyt`.`pro_shop1`
TO
‘p1′@’localhost’
|
+————————————————————————————-+
5.
create
temporary
tables(注意这里是tabl

⑷ 数据库中用户权限的种类有哪些

①对象权限 作用:决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限
②语句权限 作用:决定用户能否操作数据库和创建数据库对象
③隐含权限 作用:控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。

⑸ 数据库权限分为几种,它们有什么区别

用户在具有了访问数据库的权限之后,就可以授予其访问数据库对象的权限了。可授予对象的权限包括以下几种:
SELECT
允许用户对表或视图发出SELECT语句。
INSERT
允许用户对表或视图发出INSERT语句。
UPDATE
允许用户对表或视图发出UPDATE语句。
DELETE
允许用户对表或视图发出DELETE语句。
EXECUTE
允许用户对存储过程发出EXECUTE语句。

⑹ MySQL的权限有哪些

MySQL各种权限(共27个)
(以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)
1. usage
连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。
mysql> grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′;
该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。
2. select
必须有select的权限,才可以使用select table
mysql> grant select on pyt.* to ‘p1′@’localhost’;
mysql> select * from shop;
3. create
必须有create的权限,才可以使用create table
mysql> grant create on pyt.* to ‘p1′@’localhost’;
4. create routine
必须具有create routine的权限,才可以使用{create |alter|drop} {procere|function}
mysql> grant create routine on pyt.* to ‘p1′@’localhost’;
当授予create routine时,自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:
mysql> show grants for ‘p1′@’localhost’;

⑺ MySQL的权限有哪些

MySQL的权限有哪些

  • 一.权限表


  • mysql数据库中的3个权限表:user 、db、 host


  • 权限表的存取过程是:


  • 1)先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;


  • 2)通过权限验证,进行权限分配时,按照useràdbàtables_privàcolumns_priv的顺序进行分配。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。


  • 二.MySQL各种权限(共27个)


  • (以下操作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)


  • 1. usage


  • 连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。


  • mysql> grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′;


  • 该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。


  • 2. select


  • 必须有select的权限,才可以使用select table


  • mysql> grant select on pyt.* to ‘p1′@’localhost’;


  • mysql> select * from shop;


  • 3. create


  • 必须有create的权限,才可以使用create table


  • mysql> grant create on pyt.* to ‘p1′@’localhost’;


  • 4. create routine


  • 必须具有create routine的权限,才可以使用{create |alter|drop} {procere|function}


  • mysql> grant create routine on pyt.* to ‘p1′@’localhost’;


  • 当授予create routine时,自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:


  • mysql> show grants for ‘p1′@’localhost’;


  • +—————————————————————————+


  • Grants for p1@localhost


  • +————————————————————————–+


  • | GRANT USAGE ON *.* TO ‘p1′@’localhost’ IDENTIFIED BY PASSWORD ‘*′ |


  • | GRANT SELECT, CREATE, CREATE ROUTINE ON `pyt`.* TO ‘p1′@’localhost’|


  • | GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `pyt`.`pro_shop1` TO ‘p1′@’localhost’ |


  • +————————————————————————————-+


  • 5. create temporary tables(注意这里是tables,不是table)


  • 必须有create temporary tables的权限,才可以使用create temporary tables.


  • mysql> grant create temporary tables on pyt.* to ‘p1′@’localhost’;


  • [mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt


  • mysql> create temporary table tt1(id int);


  • 6. create view


  • 必须有create view的权限,才可以使用create view


  • mysql> grant create view on pyt.* to ‘p1′@’localhost’;


  • mysql> create view v_shop as select price from shop;


  • 7. create user


  • 要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。


  • mysql> grant create user on *.* to ‘p1′@’localhost’;


  • 或:mysql> grant insert on *.* to p1@localhost;


  • 8. insert


  • 必须有insert的权限,才可以使用insert into ….. values….


  • 9. alter


  • 必须有alter的权限,才可以使用alter table


  • alter table shop modify dealer char(15);


  • 10. alter routine


  • 必须具有alter routine的权限,才可以使用{alter |drop} {procere|function}


  • mysql>grant alter routine on pyt.* to ‘p1′@’ localhost ‘;


  • mysql> drop procere pro_shop;


  • Query OK, 0 rows affected (0.00 sec)


  • mysql> revoke alter routine on pyt.* from ‘p1′@’localhost’;


  • [mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt


  • mysql> drop procere pro_shop;


  • ERROR 1370 (42000): alter routine command denied to user ‘p1′@’localhost’ for routine ‘pyt.pro_shop’


  • 11. update


  • 必须有update的权限,才可以使用update table


  • mysql> update shop set price=3.5 where article=0001 and dealer=’A';


  • 12. delete


  • 必须有delete的权限,才可以使用delete from ….where….(删除表中的记录)


  • 13. drop


  • 必须有drop的权限,才可以使用drop database db_name; drop table tab_name;


  • drop view vi_name; drop index in_name;


  • 14. show database


  • 通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。


  • 对于p1@localhost用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:


  • mysql> show databases;


  • +——————–+


  • | Database |


  • +——————–+


  • | information_schema|


  • | pyt |


  • | test |


  • +——————–+


  • 15. show view


  • 必须拥有show view权限,才能执行show create view。


  • mysql> grant show view on pyt.* to p1@localhost;


  • mysql> show create view v_shop;


  • 16. index


  • 必须拥有index权限,才能执行[create |drop] index


  • mysql> grant index on pyt.* to p1@localhost;


  • mysql> create index ix_shop on shop(article);


  • mysql> drop index ix_shop on shop;


  • 17. excute


  • 执行存在的Functions,Proceres


  • mysql> call pro_shop1(0001,@a);


  • +———+


  • | article |


  • +———+


  • | 0001 |


  • | 0001 |


  • +———+


  • mysql> select @a;


  • +——+


  • | @a |


  • +——+


  • | 2 |


  • +——+


  • 18. lock tables


  • 必须拥有lock tables权限,才可以使用lock tables


  • mysql> grant lock tables on pyt.* to p1@localhost;


  • mysql> lock tables a1 read;


  • mysql> unlock tables;


  • 19. references


  • 有了REFERENCES权限,用户就可以将其它表的一个字段作为某一个表的外键约束。


  • 20. reload


  • 必须拥有reload权限,才可以执行flush [tables | logs | privileges]


  • mysql> grant reload on pyt.* to p1@localhost;


  • ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES


  • mysql> grant reload on *.* to ‘p1′@’localhost’;


  • Query OK, 0 rows affected (0.00 sec)


  • mysql> flush tables;


  • 21. replication client


  • 拥有此权限可以查询master server、slave server状态。


  • mysql> show master status;


  • ERROR 1227 (42000): Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation


  • mysql> grant Replication client on *.* to p1@localhost;


  • 或:mysql> grant super on *.* to p1@localhost;


  • mysql> show master status;


  • +——————+———-+————–+——————+


  • | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |


  • +——————+———-+————–+——————+


  • | mysql-bin.000006 | 2111 | | |


  • +——————+———-+————–+——————+


  • mysql> show slave status;


  • 22. replication slave


  • 拥有此权限可以查看从服务器,从主服务器读取二进制日志。


  • mysql> show slave hosts;


  • ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation


  • mysql> show binlog events;


  • ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation


  • mysql> grant replication slave on *.* to p1@localhost;


  • mysql> show slave hosts;


  • Empty set (0.00 sec)


  • mysql>show binlog events;


  • +—————+——-+—————-+———–+————-+————–+


  • | Log_name | Pos | Event_type | Server_id| End_log_pos|Info | +—————+——-+————–+———–+————-+—————+


  • | mysql-bin.000005 | 4 | Format_desc | 1 | 98 | Server ver: 5.0.77-log, Binlog ver: 4 | |mysql-bin.000005|98|Query|1|197|use `mysql`; create table a1(i int)engine=myisam|


  • ……………………………………


  • 23. Shutdown


  • 关闭MySQL:


  • [mysql@mydev ~]$ mysqladmin shutdown


  • 重新连接:


  • [mysql@mydev ~]$ mysql


  • ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)


  • [mysql@mydev ~]$ cd /u01/mysql/bin


  • [mysql@mydev bin]$ ./mysqld_safe &


  • [mysql@mydev bin]$ mysql


  • 24. grant option


  • 拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)


  • mysql> grant Grant option on pyt.* to p1@localhost;


  • mysql> grant select on pyt.* to p2@localhost;


  • 25. file


  • 拥有file权限才可以执行 select ..into outfile和load data infile…操作,但是不要把file, process, super权限授予管理员以外的账号,这样存在严重的安全隐患。


  • mysql> grant file on *.* to p1@localhost;


  • mysql> load data infile ‘/home/mysql/pet.txt’ into table pet;


  • 26. super


  • 这个权限允许用户终止任何查询;修改全局变量的SET语句;使用CHANGE MASTER,PURGE MASTER LOGS。


  • mysql> grant super on *.* to p1@localhost;


  • mysql> purge master logs before ‘mysql-bin.000006′;


  • 27. process


  • 通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。


  • mysql> show processlist;


  • +—-+——+———–+——+———+——+——-+——————+


  • | Id | User | Host | db | Command | Time | State | Info |


  • +—-+——+———–+——+———+——+——-+——————+


  • | 12 | p1 | localhost | pyt | Query | 0 | NULL | show processlist |


  • +—-+——+———–+——+———+——+——-+——————+


  • 另外,


  • 管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟*.*


  • mysql> grant super on pyt.* to p1@localhost;


  • ERROR 1221 (HY000): Incorrect usage of DB GRANT and GLOBAL PRIVILEGES


  • mysql> grant super on *.* to p1@localhost;


  • Query OK, 0 rows affected (0.01 sec)

⑻ ORACLE数据库中的权限和角色

ORACLE数据库中的权限和角色

Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。

1 权限

Oracle数据库有两种途径获得权限,它们分别为:

① DBA直接向用户授予权限。

② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。

使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。

Oracle中的权限可以分为两类:

•系统权限

•对象权限

1.1 系统权限

系统权限是在数据库中执行某种操作,或者针对某一类的对象执行某种操作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。

系统权限的权利很大,通常情况下:

① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。

② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。

③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库

④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。

1.2对象权限

对象权限是针对某个特定的模式对象执行操作的权利。只能针对模式对象来设置和管理对象权限。

对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。

但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的.系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。

用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。

2 角色

2.1角色的概念

角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行操作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。

2.2角色的优点

通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:

•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权操作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。

•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。

•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等操作。

下面以Oracle9i为例,给出具体的实现用户授权:

(1)设定各种角色,及其权限

CREATE ROLE checkerrole DENTIFIEDBYxm361001;

CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;

GRANT SELECT,UPDATE ON

account.paytable TO checkerrole;

GRANT CONNECT TO defaultrole;

(2)创建用户

CREATE USER xiaoli IDENTIFIEDBY xiaoli;

(3)授权

GRANT checkerrole TO xiaoli;

GRANT defaultrole TO xiaoli;

(4)设定用户缺省的角色

ALTER USER xiaoli DEFAULTROLE defaultrole;

(5)注册过程

CONNECT xiaoli/xiaoli@oracle

此时用户只有其缺省角色的权限。

(6)激活角色

SET ROLE checkerrole IDENTIFIEDBY xm361001;

----操作成功后,xiaoli拥有checkerrole的权限。

----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全

;
热点内容
神秘顾客访问 发布:2025-05-15 20:33:39 浏览:296
安卓市场手机版从哪里下载 发布:2025-05-15 20:17:28 浏览:814
幼儿速算法 发布:2025-05-15 20:15:08 浏览:86
best把枪密码多少 发布:2025-05-15 20:13:42 浏览:548
android安装程序 发布:2025-05-15 20:13:20 浏览:559
c语言跳出死循环 发布:2025-05-15 20:06:04 浏览:824
a19处理器相当于安卓哪个水平 发布:2025-05-15 20:05:29 浏览:639
荣耀9i安卓强行关机按哪个键 发布:2025-05-15 20:00:32 浏览:750
密码锁写什么最好 发布:2025-05-15 19:05:31 浏览:783
5的源码是 发布:2025-05-15 19:04:07 浏览:719