administrator和all是什么意思 数据库中用户与角色权限管理各有什么作用?
数据库中用户与角色权限管理各有什么作用?
角色一直必然各个数据库中,比如说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文件夹后应用商店闪退,也可以用这个方法来复原。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。