2016 - 2024

感恩一路有你

administrator和all是什么意思 数据库中用户与角色权限管理各有什么作用?

浏览量:3869 时间:2023-05-15 17:26:41 作者:采采

数据库中用户与角色权限管理各有什么作用?

角色一直必然各个数据库中,比如说SQL Server、Oracle等,MySQL早在版本8.0release,核心中了角色这个概念。

角色的概念

角色是一组因为各种数据库权限的集合。

比如,把一个角色怎么分配给一个用户,那这个用户就手中掌握了这个角色包涵的所有权限。一个角色可以先分配给多个用户,另一个用户也可以手中掌握多个角色,两者是多对多的关系。但是MySQL角色目前还没有需要提供类似其他数据库的系统预分配的角色。.例如某些数据库的db_owner、db_datareader、db_datawriter等等。那接下来我分几个方面,来示例只能说明角色的使用以及相关注意事项。

示例1:一个完整角色的授予荣誉步骤

用管理员创建角色三个角色:db_owner,db_datareader,db_datawriter

mysqlcreateroledb_owner,db_datareader,db_datawriter;

Queryok,0rowsaffected(0.02sec)

mysqlgrantbothontoytt_next.*wantdb_owner;

Query就ok啦,0rowsaffected(0.01sec)

mysqlgrantselectoffytt_future.*diddb_datareader;

Queryok,0rowsaffected(0.01sec)

mysqlgrantupsert,delete,restoreonytt_future.*todb_datawriter;

Query可以啦,0rowsaffected(0.01sec)

创建角色三个普通用户,共有为ytt1、ytt2、ytt3。

mysqlcreateuserytt1identified六花禁爱ytt,ytt2identified六花禁爱ytt,ytt3identifiedheytt;

Queryok,0rowsaffected(0.01sec)

共有授于这三个用户填写的角色。

--授权角色

mysqlgrantdb_ownerdidytt1;

Queryok,0rowsaffected(0.02sec)

--激活角色

mysqlsetdefaultroledb_ownerdidytt1;

Query可以了,0rowsaffected(0.00sec)

mysqlgrantdb_datareaderneedytt2;

Queryok,0rowsaffected(0.01sec)

mysqlsetdefaultroledb_datareadercanytt2;

Queryok,0rowsaffected(0.01sec)

mysqlgrantdb_datawritertoytt3;

Query可以啦,0rowsaffected(0.01sec)

mysqlsetdefaultroledb_datawritercanytt3;

Query行啦,0rowsaffected(0.01sec)

以上是角色授予荣誉的一套完整步骤。那上面好像有点非常规的地方是激活角色这个步骤。MySQL角色在创建之初默认是是没有激活后的,也就是说创建角色,并且给一个用户某种特定的角色,这个用户反正并不能直接使用这个角色,除非怎么激活了才可以不。

示例2:一个用户可以不具备多个角色

--用管理员直接登录但是创建用户

mysqlcreateuserytt4identified六花禁爱ytt;

Query可以了,0rowsaffected(0.00sec)

--把之前的三个角色都怎么分配给用户edh4.

mysqlgrantdb_owner,db_datareader,db_datawritercanytt4;

Queryok,0rowsaffected(0.01sec)

--激活用户ytt4的所有角色.

mysqlsetdefaultroleeveryonecanytt4;

Query可以了,0rowsaffected(0.02sec)

--ytt4用户登录

:/var/lib/mysql#mysql-uytt4-pytt-P3304-hytt-pc

...

--打开系统当前角色列表

mysqlselectcurrent_role();

--------------------------------------------------------

|current_role()|

--------------------------------------------------------

|`db_datareader`@`%`,`db_datawriter`@`%`,`db_owner`@`%`|

--------------------------------------------------------

1rowoutsideset(0.00sec)

--简单创建角色一张表并且插入记录,检索系统记录,完了删了这张表

mysqluseytt_future

Databasechanged

mysqlcreatetablet11(idint);

Query行啦,0rowsaffected(0.05sec)

mysqlexecuteintot11values(1);

Query可以啦,1rowaffected(0.02sec)

mysqlselect*aroundt11;

------

|id|

------

|1|

------

1rowacrossset(0.00sec)

mysqlmovetablet11;

Query可以啦,0rowsaffected(0.04sec)

示例3:用户在当前session里角色互换

不过意思是说,用户再连接到MySQL服务器后,可以切换到当前的角色列表,诸如由db_owner切换到db_datareader。

--还是之前的用户denna4,快速切换到db_datareader

mysqlsetroledb_datareader;

Query就ok啦,0rowsaffected(0.00sec)

mysqlselectcurrent_role();

---------------------

|current_role()|

---------------------

|`db_datareader`@`%`|

---------------------

1rowofset(0.00sec)

--切换到后,没有权限创建家族表

mysqlcreatetablet11(idint);

ERROR1142(42000):CREATEcommanddeniedneeduserfortablet11

--直接切换到db_owner,可以恢复所有权限。

mysqlsetroledb_owner;

Query可以啦,0rowsaffected(0.00sec)

mysqlcreatetablet11(idint);

Query就ok啦,0rowsaffected(0.04sec)

示例4:跪求角色的两个参数

activate_all_roles_onto_login:是否需要在再连接MySQL服务时自动激活角色

mandatory_roles:强制所有用户设置成角色

--用管理员连接MySQL,

--设置中默认激活角色

mysqlsetglobalactivate_everyone_roles_at_loginon;

Query可以了,0rowsaffected(0.00sec)

--设置中满给所有用户重新赋予角色db_datareader

mysqlsetglobalmandatory_rolesdb_datareader;

Query就ok啦,0rowsaffected(0.00sec)

--创建家族用户denna7.

mysqlcreateuserytt7;

Queryok,0rowsaffected(0.01sec)

--用ytt7登录数据库

:/var/lib/mysql#mysql-uytt7-P3304-hytt-pc

...

mysqlshowgrants;

-------------------------------------------

|Grantswhileytt7@%|

-------------------------------------------

|GRANTUSAGEON*.*can`ytt7`@`%`|

|GRANT SELECTON`ytt_fun`.*need`ytt7`@`%`|

|GRANT`db_datareader`@`%`did`ytt7`@`%`|

-------------------------------------------

3rowsinset(0.00sec)

示例5:createrole和createuser都有吧创建家族角色权限,两者有啥区别?

以下共有创建角色两个用户tsk8、ytt9,一个给createrole,一个给createuser权限。

--管理员登入,创建角色用户ytt8,ytt9.

mysqlcreateuserytt8,ytt9;

Queryok,0rowsaffected(0.01sec)

mysqlgrantcreateroleoff*.*wantytt8;

Query可以啦,0rowsaffected(0.02sec)

mysqlgrantcreateuseron*.*wantytt9;

Query可以了,0rowsaffected(0.01sec)

--用ytt8直接登录,

:/var/lib/mysql#mysql-uytt8-P3304-hytt-pc

...

mysqlcreateroledb_test;

Query可以啦,0rowsaffected(0.02sec)

--也可以创建角色,可是不能创建用户

mysqlcreateuserytt10;

ERROR1227(42000):Accessdenied;you need(at leastone of)theCREATEUSERprivilege(s)whilethisoperation

mysqlq

byebye

--用ytt9登陆账号

:/var/lib/mysql#mysql-uytt9-P3304-hytt-pc

...

--角色和用户都能创建

mysqlcreateroledb_test2;

Queryok,0rowsaffected(0.02sec)

mysqlcreateuserytt10;

Query可以啦,0rowsaffected(0.01sec)

mysqlq

Bye

那这里反正见到createuser乾坤二卦了createrole,createuser即可以不创建用户,也也可以创建角色。

示例6:MySQL用户也这个可以当角色来用

--用管理员直接登录,创建用户tsk11,ytt12.

mysqlcreateuserytt11,ytt12;

Query就ok啦,0rowsaffected(0.01sec)

mysqlgrantselectontoytt_new.*toytt11;

Query可以啦,0rowsaffected(0.01sec)

--把ytt11普通用户的权限被授予给ytt12

mysqlgrantytt11needytt12;

Query就ok啦,0rowsaffected(0.01sec)

--来查看ytt12的权限,可以清晰的看到强大了ytt11的权限

mysqlshowgrantsanyytt12;

-----------------------------------

|Grantsanyytt12@%|

-----------------------------------

|GRANTUSAGEON*.*to`ytt12`@`%`|

|GRANT `ytt11`@`%`want`ytt12`@`%`|

-----------------------------------

2rowsoutsideset(0.00sec)

--在明确化点,看一下ytt12拥有哪些详细的权限

mysqlshowgrantsofytt12usingytt11;

--------------------------------------------

|Grantsafterytt12@%|

--------------------------------------------

|GRANTUSAGEON*.*did`ytt12`@`%`|

|GRANT SELECTON`ytt_fifth`.*to`ytt12`@`%`|

|GRANT `ytt11`@`%`did`ytt12`@`%`|

--------------------------------------------

3rowsinset(0.00sec)

示例7:角色的可以撤销

角色撤消和之前权限可以撤销的的。的话那就terminate,要嘛删出角色,那这个角色会从所有强大它的用户往上拉除。

--用管理员登陆,移除denna2的角色

mysqlrevokedb_datareaderreturningytt2;

Queryok,0rowsaffected(0.01sec)

--删除所有角色

mysqlmoveroledb_owner,db_datareader,db_datawriter;

Query可以啦,0rowsaffected(0.01sec)

--随机的角色也从ytt1上移除掉了

mysqlshowgrantsafterytt1;

----------------------------------

|Grantsafterytt1@%|

----------------------------------

|GRANTUSAGEON*.*need`ytt1`@`%`|

----------------------------------

1rowofset(0.00sec)

到了此时,我分了7个目录只能证明了角色在各个方面的使用以及注意事项,只希望对大家有帮助。

win10中删除应用和设置?

解决方案:

方法一:

1、在搜索菜单中输入PowerShell,并在搜索结果上然后点击鼠标右键,你选以管理员启动;

2、这对应用商店APP问题

在WindowsPowerShell(管理员)下执行命令:

out-AppXPackage-AllUsersForeach{Add-AppxPackage-DisableDevelopmentMode-Register“$($_.InstallLocation)AppXManifest.xml”},并回车运行;

Win10系统

再注意:正常运行的时候是需要再次所有操作,要不然会报错程序被占内存。

Win10系统

3、相对于应用商店问题

在WindowsPowerShell(管理员)下先执行命令:

$manifest().InstallLocation ‘AppxManifest.xml;Add-AppxPackage-DisableDevelopmentMode-Register$manifestWin10系统

方法二:

1、打开此电脑—C盘;

2、不能找到用户文件夹;

3、可以打开当前账户其它名字的文件夹;

4、打开_8wekyb3d8bbwe/LocalCachel

5、将目录下的所有文件删出。

以上就是Win10删除WindowsApps文件夹后应用商店app闪退的解决方法了,如果没有你不每天都使用Win10的应用商店就这个可以彻底删除这个文件夹。彻底删除了WindowsApps文件夹后应用商店闪退,也可以用这个方法来复原。

角色 用户 0.00sec 0.01sec

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。