关于用户角色切换的问题(default role的用法)

首先创建2个角色,一个是有口令的,一个是没有口令的
create role test_role identified by test;
create role test_role1;
把一下的对象权限和角色,分别赋予这两个用户,test_role有insert的权限,test_role1只有select的权限
grant insert on dz.test to test_role;
grant select on dz.test to test_role1;
grant connect,resource to test_role;
grant connect,resource to test_role1;
下面创建一个用户 test
create user test identified by test
grant test_role,test_role to test;
设置用户test的缺省的角色是test_role1,
alter user role_user defaule role test_role1;
切换用户
conn test/test
select 没有问题,因为default role 是test_role1
select * from dz.test;
但是insert的时候
insert into dz.test values (1,'a');
ERROR at line 1:
ORA-01031: insufficient privileges
说明用户并没有test_role这个角色的权限
这时候我们切换一下角色,就ok了
set role test_role identified by test;
insert into dz.test values (1,'a');
1 row created.
这种情况有时管理比较方便。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22531894/viewspace-1028203/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22531894/viewspace-1028203/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 MySQL 中,角色并不是自动激活的,而是需要显式地进行设置。如果您希望在用户连接到 MySQL 服务器后自动激活角色,可以通过以下步骤实现: 1. 创建角色并为其分配权限: ``` CREATE ROLE myrole; GRANT SELECT, INSERT ON mydatabase.* TO myrole; ``` 2. 创建用户并将角色分配给用户: ``` CREATE USER myuser IDENTIFIED BY 'mypassword'; GRANT myrole TO myuser; ``` 3. 启用角色: ``` SET DEFAULT ROLE myrole FOR myuser; ``` 现在,当用户 myuser 连接到 MySQL 服务器时,角色 myrole 将自动激活,并且用户将具有角色所分配的权限。注意,如果用户具有多个角色,则可以使用 SET ROLE 语句显式地切换角色。 ### 回答2: 在MySQL数据库中,用户角色的自动激活设置方法可以通过以下步骤完成: 1. 创建用户角色:首先,使用CREATE ROLE语句创建一个新的角色。例如,可以使用以下语句创建一个名为"admin"的角色: CREATE ROLE admin; 2. 分配权限给角色:然后,使用GRANT语句将所需的权限分配给角色。例如,可以使用以下语句将SELECT、INSERT、UPDATE和DELETE权限分配给"admin"角色: GRANT SELECT, INSERT, UPDATE, DELETE ON database.table TO admin; 3. 创建用户账号:接下来,使用CREATE USER语句创建一个用户账号,并将其连接到服务器。例如,可以使用以下语句创建一个名为"testuser"的用户,并指定其密码和允许连接服务器的主机: CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password'; 4. 授权角色用户账号:最后,使用GRANT语句将角色授权给用户账号。例如,可以使用以下语句将"admin"角色授权给"testuser"用户: GRANT admin TO 'testuser'@'localhost'; 这样,当"testuser"用户登录到MySQL服务器时,"admin"角色将自动激活,并具有先前分配的权限。这意味着该用户可以执行SELECT、INSERT、UPDATE和DELETE操作,以及其他角色具有的权限。 需要注意的是,为了使上述设置生效,必须使用FLUSH PRIVILEGES语句刷新权限。例如,可以使用以下语句使设置立即生效: FLUSH PRIVILEGES; 以上就是在MySQL数据库中实现角色用户账号连接服务器后自动激活的设置方法。 ### 回答3: 在mySQL数据库中,可以通过以下步骤来设置角色用户账号连接服务器后自动被激活: 1. 首先,在数据库中创建一个角色。你可以使用CREATE ROLE语句来创建角色,并使用GRANT语句来为角色分配需要的权限。例如,创建名为"myrole"的角色并给予SELECT、INSERT和UPDATE的权限可以使用以下语句: CREATE ROLE myrole; GRANT SELECT, INSERT, UPDATE ON database.* TO myrole; 2. 接下来,你需要为要连接到服务器的用户账号授予该角色。你可以使用GRANT语句来为用户账号授予角色。例如,将名为"user"的用户账号授予"myrole"角色可以使用以下语句: GRANT myrole TO user; 3. 当用户使用给定的账号登录数据库时,mySQL将自动激活该用户所分配的角色。这意味着用户可以直接使用角色具有的权限,而无需再次为用户账号分配这些权限。 需要注意的是,角色是mySQL 8.0及以上版本的功能。如果你使用的是低于这个版本的mySQL,请确保你的版本支持角色功能。 通过以上步骤,你可以在mySQL数据库中设置角色用户账号连接服务器后自动被激活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值