A.MongoDB是没有默认管理员账号,所以要先添加管理员账号,再开启权限认证。
B.切换到admin数据库,添加的账号才是管理员账号。
C.用户只能在创建用户对应的数据库中完成认证,包括管理员账号。
D.管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。
2MongoDB数据库角色
A数据库用户角色:read、readWrite;
B数据库管理角色:dbAdmin、dbOwner、userAdmin;
C集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
D备份恢复角色:backup、restore;
E所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
F超级用户角色:root
角色说明:
Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问systemprofile
userAdmin:允许用户向systemusers集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限
3添加管理员账号及完成认证
dbcreateUser({user:’root’,pwd:’zuchezaixian’,roles:[{role:’root’,db:’admin’}]})
注:所有数据库下的用户都在admin的users集合中可以查询到:dbsystemusersfind()
配置文件指定启用身份认证,重启MongoDB服务。
重启后执行show dbs会提示未认证,我们需要切换到admin数据库下完成管理员账号认证:
完成认证后,就可以成功执行show dbs了。
4Spring配置用户认证
mongodbproperties中指定管理员账号及对应的数据库名。
在spring-data-mongodb 17版本后需要在mongo-client
中设置 credentials属性来指定管理员信息,credentials的配置形式是:“用户名:密码@默认数据库”,如:credentials="${mongouser}:${mongopwd}@${mongodefaultDbName}"
原因:数据库设置错误导致的。解决方法:创建一个访问数据库的权限。
1使用数据库机器上的CMD指令调用命令行窗口,然后使用sqlplus/assysdba登录到数据库。并与将被授予权限的表所有者连接到数据库,否则后续的权限将失败。
2创建由test123标识的用户测试;创建密码设置为test123的测试用户。
3授权测试用户的连接和资源权限。授予连接、测试资源,如下图。
4Cify表授权查询权限。给用户一个选择,表测试。
5为了与新的登录数据库进行验证,我们首先尝试删除删除数据的功能,无法执行错误,说明我们添加的用户没有删除的权利。
6然后验证select查询函数是否成功地找到了指定的数据。创建新用户并指定查询权限函数的实现。对未授权表的查询也会被拒绝,如下图。
可按如下方法查询,以sqlserver2008为例:
1、登录SQL Server Management Studio。
2、展开左边的树,先在数据库中找到自己创建自定义函数的库,如数据库-系统数据库-master。
3、依次点击可编程性-函数-标量值函数,如曾经创建过一个叫“fn_myget”的自定义函数,就能看见。
4、右键此函数,点击编辑,就能看到这个函数的源代码。
5、代码如图,红框部分即为源代码。
ORACLE数据库中的权限和角色
Oracle数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种 *** 作的权利。而角色是为了方便DBA管理权限而引入的一个概念,它实际上是一个命名的权限集合。
1 权限
Oracle数据库有两种途径获得权限,它们分别为:
① DBA直接向用户授予权限。
② DBA将权限授予角色(一个命名的包含多个权限的集合),然后再将角色授予一个或多个用户。
使用角色能够更加方便和高效地对权限进行管理,所以DBA应该习惯于使用角色向用户进行授予权限,而不是直接向用户授予权限。
Oracle中的权限可以分为两类:
•系统权限
•对象权限
11 系统权限
系统权限是在数据库中执行某种 *** 作,或者针对某一类的对象执行某种 *** 作的权利。例如,在数据库中创建表空间的权利,或者在任何模式中创建表的权利,这些都属于系统权限。在Oracle9i中一共提供了60多种权限。
系统权限的权利很大,通常情况下:
① 只有DBA才应当拥有alter database系统权限,该权限允许用户对数据库物理结构和可用性进行修改。
② 应用程序开发者一般应该拥有Create Table、Create View和Create Type等系统权限,用于创建支持前端的数据库模式对象。
③ 普通用户一般只具有Create session系统权限(可以通过Connection角色获得),只有Create Session系统权限的用户才能连接到数据库
④ 只有具有Grant Any PRivilege系统权限用户,或者获取了具有With Admin Option选项的系统权限的用户,才能够成为其它用户授予权限。
12对象权限
对象权限是针对某个特定的模式对象执行 *** 作的权利。只能针对模式对象来设置和管理对象权限。
对于模式对象:表、视图、序列、存储过程、存储函数、包都可以对象设置权限。不同类型模式对象具有不同的对象权限。比如,表、视图等对象具有查询(Select)、修改(Update)、删除(Delete)等对象权限,而存储过程、存储函数等对象则具有执行(Execute)等对象权限。
但是并不是所有的模式对象都可以设置对象权限。比如簇、索引、触发器以及数据库链接等模式就不具有对象权限。这些模式对象的访问控制是通过相应的系统权限来实现的,比如,要对索引进行修改,必须拥有Alter Any Index系统权限。
用户自动拥有他的模式中所有对象的全部对象权限,他可以将这些对象权限授予其他的用户或角色。比如,Test1用户创建了一个表Table1,在没有授权的情况下,用户Test2不能查询、修改、删除这个表。如果Test1将ETP表的Select对象权限授予了Test2,则该用户就可以查询Table1表了。如果在为其它用户授予对象权限时用了With Grant Option选项,被授予权限的用户还可以将这个权限在授予其他用户。
2 角色
21角色的概念
角色就是多个相关权限的命名集合。通过角色来进行对用户授予权限,可以大大简化DBA的工作量。比如,处于统一部门中的30多个用户都需要访问数据库中的一系列表,DBA可以将这些表的中合适的对象权限授予一个角色,然后在把这个角色授予这些用户,这样进行 *** 作要比为没有用户进行授权要便捷多了,而且要对这些用户的权限进行统一修改,只需要修改角色的权限即可。
22角色的优点
通过角色为用户授予权限,而不是直接向各个用户授权,具有以下优点:
•简化权限管理 DBA将用户群分类,然后为每一类用户创建角色,并将该角色授予这类用户所需要的权限,最后在将改角色授予该类中的各个用户。这样不仅简化了授权 *** 作,而且当这类用户的权限需求发生改变时,只需要把角色的权限进行改动,而不必修改每一位用户的权限。
•动态权限管理 角色可以被禁用或激活。当角色被禁止使用时,拥有该角色的用户不再拥有授予改角色的权限了。这样就可以对多个用户的权限进行动态控制了。
•灵活的编程能力 角色是存储在数据字典中的,并且可以为角色设置口令。这样就能够在应用程序中对角色进行控制。比如禁用或者激活等 *** 作。
下面以Oracle9i为例,给出具体的实现用户授权:
(1)设定各种角色,及其权限
CREATE ROLE checkerrole DENTIFIEDBYxm361001;
CREATE ROLE defaultrole IDENTIFIEDBYdefaultrole;
GRANT SELECT,UPDATE ON
accountpaytable 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的权限。
----这里的角色和口令是固定的,在应用系统中可以由应用管理人员自行设置则更为方便安全
;首先打开数据库,并以windows身份验证模式_牢固数据库;
然后在左侧的对象资源管理器中展开安全性节点,鼠标右键点击节点中的登录名,在d出的菜单中单击新建登录名
1在登录名右侧的文本框中输入新建的管理员账号名称;
2一对单选按钮组中,选择SqlServer身份验证,并输入登录密码;
3勾选强制实施密码策略复选框;(密码策略一般是指加强用户登录的密码方式例如:可能需要至少8个以上字符,或在尝试若干登陆失败后该账号即被禁止登陆等等!如果觉得麻烦可以不必勾选!)。
4不勾选强制密码过期;(如果勾选该项的话,则每一次登陆后系统都会提示用户必须更改现有密码,如非特殊需求,不建议勾选此项!)。
然后继续点选左侧选项页下的服务器角色;
在右侧的服务器角色面板中,勾选public和sysadmin两项!
注意:如果建立的账号不需要具备系统管理员的权限时,则不要勾选sysadmin项!
继续点选左侧选项页中的用户映射。
在右侧的面板中勾选该账号可以进行管理 *** 作的数据库名称!并在该面板下面的数据库角色成员身份中勾选db_owner项!
注意:如果给一个无系统管理权限的账号指定管理一个数据库时,则一定要勾选db_owner项!否则该账号则无法看到该数据库中的任何数据表!
选后点选选择页下的状态选项进行设置
不知道你问的什么意思,mysql中用户的权如下:
Select_priv。确定用户是否可以通过SELECT命令选择数据。
Insert_priv。确定用户是否可以通过INSERT命令插入数据。
Update_priv。确定用户是否可以通过UPDATE命令修改现有数据。
Delete_priv。确定用户是否可以通过DELETE命令删除现有数据。
Create_priv。确定用户是否可以创建新的数据库和表。
Drop_priv。确定用户是否可以删除现有数据库和表。
Reload_priv。确定用户是否可以执行刷新和重新加载MySQL所用各种内部缓存的特定命令,包括日志、权限、主机、查询和表。
Shutdown_priv。确定用户是否可以关闭MySQL服务器。在将此权限提供给root账户之外的任何用户时,都应当非常谨慎。
Process_priv。确定用户是否可以通过SHOW
PROCESSLIST命令查看其他用户的进程。
File_priv。确定用户是否可以执行SELECT INTO OUTFILE和LOAD DATA
INFILE命令。
Grant_priv。确定用户是否可以将已经授予给该用户自己的权限再授予其他用户。例如,如果用户可以插入、选择和删除foo数据库中的信息,并且授予了GRANT权限,则该用户就可以将其任何或全部权限授予系统中的任何其他用户。
References_priv。目前只是某些未来功能的占位符;现在没有作用。
Index_priv。确定用户是否可以创建和删除表索引。
Alter_priv。确定用户是否可以重命名和修改表结构。
Show_db_priv。确定用户是否可以查看服务器上所有数据库的名字,包括用户拥有足够访问权限的数据库。可以考虑对所有用户禁用这个权限,除非有特别不可抗拒的原因。
Super_priv。确定用户是否可以执行某些强大的管理功能,例如通过KILL命令删除用户进程,使用SET
GLOBAL修改全局MySQL变量,执行关于复制和日志的各种命令。
Create_tmp_table_priv。确定用户是否可以创建临时表。
Lock_tables_priv。确定用户是否可以使用LOCK
TABLES命令阻止对表的访问/修改。
Execute_priv。确定用户是否可以执行存储过程。此权限只在MySQL
50及更高版本中有意义。
Repl_slave_priv。确定用户是否可以读取用于维护复制数据库环境的二进制日志文件。此用户位于主系统中,有利于主机和客户机之间的通信。
Repl_client_priv。确定用户是否可以确定复制从服务器和主服务器的位置。
Create_view_priv。确定用户是否可以创建视图。此权限只在MySQL
50及更高版本中有意义。关于视图的更多信息,参见第34章。
Show_view_priv。确定用户是否可以查看视图或了解视图如何执行。此权限只在MySQL
50及更高版本中有意义。关于视图的更多信息,参见第34章。
Create_routine_priv。确定用户是否可以更改或放弃存储过程和函数。此权限是在MySQL
50中引入的。
Alter_routine_priv。确定用户是否可以修改或删除存储函数及函数。此权限是在MySQL
50中引入的。
Create_user_priv。确定用户是否可以执行CREATE
USER命令,这个命令用于创建新的MySQL账户。
Event_priv。确定用户能否创建、修改和删除事件。这个权限是MySQL
516新增的。
Trigger_priv。确定用户能否创建和删除触发器,这个权限是MySQL 516新增的。
只能通过程序来修改和读写这种限制可以通过设置应用程序角色来实现。建立一个应用程序角色,将权限只赋予这个角色,然后在程序代码中激活这个角色。不过在SQLServer中只能对表设置权限,不能对字段设置权限。
以下为在asp中增加一个sql server 用户函数 并为建立一个数据库 给他dbo的权限 注意 sql server的验证方式不要选仅为windows方式 允许远程sql server连接 该函数已通过测试 有什么问题欢迎和我交流 以后会推出对sql server的一些管理 *** 作程序 参数 StrLoginName:新增登录名 StrPwd 登录名的密码 StrDBName:新建数据库名 函数内局部变量说明:StrServer:服务器所在机器名(本机为local) StrUid:sql管理员 StrSaPwd:sql管理员密码 以上三个变量应根据你的情况设置 该函数主要调用系统存储过程来实现的 注意 本函数没有容错处理 如出现错误 可以确定是你的sql server设置有问题 或已存在该login帐号或该数据库 call AddUserToMSSQL( testlogin iamhere db_test ) Sub AddUserToMSSQL(StrLoginName StrPwd StrDBName) 定义服务器变量和系统管理员登录信息 根据具体情况修改 Dim StrServer StrUid StrSaPwd StrServer= (local) StrUid= sa StrSaPwd= Dim Conn 数据库连接 Dim StrDSN 数据库连接字符串 Dim StrCmd 命令字符串 StrDSN= driver={SQL server};server= &StrServer& ;uid= &StrUid& ;pwd= &StrSaPwd& ;database=master 建立和数据库master的连接 set Conn = Server CreateObject( ADODB Connection ) Conn Open StrDSN 新建一数据库 StrCmd= CREATE DATABASE &StrDBName Conn execute(StrCmd) 新建一登录帐号 StrCmd= sp_addlogin &StrLoginName& &StrPwd& &StrDBName& Conn execute(StrCmd) Conn Close 建立与新建数据库的连接 并赋给新登录帐号访问新建数据库的权利 StrDSN= driver={SQL server}; server= &StrServer& ;uid= &StrUid& ;pwd= &StSarPwd& ;database= &StrDBName StrCmd= sp_grantdbaccess &StrLoginName& Conn Open StrDSN Conn execute(StrCmd) 使新登录帐号成为新建数据库的拥有者 StrCmd= sp_addrolemember db_owner &StrLoginName& Conn execute(StrCmd) 关闭释放连接 Conn Close Set Conn=Nothing Response Write 用户 &StrLoginName& 成功建立! 并且已为他建立了一个数据库 &StrDBName& ! End Sub lishixinzhi/Article/program/SQLServer/201311/22005
以上就是关于如何给mongodb管理员权限全部的内容,包括:如何给mongodb管理员权限、打开notes客户端邮箱说(你没有访问数据库的权限)怎么解决、SQL数据库中的函数 如何不让用户查询或修改代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)