执行数据库命令设置
除了通过修改配置文件进行可信策略配置外,还可通过命令进行可信策略配置。
说明:
- 所有的可信策略配置只能在系统库进行设置,普通用户库的管理员无权设置可信策略。
- 删除可信策略时必须谨慎,若删除了所有可信策略,则当前登录客户端必须在未断连前新增至少一个白名单,否则所有用户均无法登录数据库,只有修改配置后重启服务才行。
语法格式
sql
ConnectPolicyStmt::=
ALTER CONNECT POLICY ADD {ENABLE | DISABLE} user_name LOGIN db_name FROM ip_addr [TO ip_addr] opt_on_node
| ALTER CONNECT POLICY DROP {ENABLE | DISABLE} user_name LOGIN db_name FROM ip_addr [TO ip_addr] opt_on_node
| ALTER CONNECT POLICY DROP ALL {ENABLE | DISABLE} opt_on_node
| ALTER CONNECT POLICY DROP ALL {ENABLE | DISABLE} LOGIN db_name opt_on_node
| ALTER CONNECT POLICY DROP ALL {ENABLE | DISABLE} user_name LOGIN db_name opt_on_node
| ALTER CONNECT POLICY DROP ALL opt_on_node
opt_on_node::=
[ON ALL NODE | ON NODE ICONST]
参数说明
ENABLE
:表示该条可信策略为白名单策略。DISABLE
:表示该条可信策略为黑名单策略。user_name
:表示可信策略所影响的用户名,所有用户可用everyone
表示。db_name
:表示可信策略所影响的库名,所有库可用everydb表示。ip_addr
:表示可信策略所影响的IP地址或IP地址段,所有地址可用from anywhere
表示。ON ALL NODE
:多节点,可信策略对所有节点生效,单节点可不配置。ON NODE ICONST
:其中ICONST
为节点号,表示黑白名单在ICONST
节点号生效,若未使用ON ALL NODE
和ON NODE ICONST
则表示黑白名单在当前节点生效。
说明:
在trust.ini中默认配置trust everydb everyone from anywhere,该项覆盖了所有白名单选项,单独设置白名单无意义,若需白名单生效,需删除该配置项,可在启动服务前修改配置生效或通过命令删除该项。
示例
示例1
增加一个白名单,允许用户u1从192.168.3.105访问任意数据库。sqlALTER CONNECT POLICY ADD ENABLE 'u1' LOGIN 'everydb' FROM '192.168.3.105' ON ALL NODE;
示例2
增加一个白名单,允许用户u2从192.168.3.107至192.168.3.110这个IP地址段访问数据库test。sqlALTER CONNECT POLICY ADD ENABLE 'u2' LOGIN 'test' FROM '192.168.3.107' TO '192.168.3.110' ON ALL NODE;
示例3
增加一个黑名单,不允许用户u3从任何IP地址访问库test,即拒绝u3登录test。sqlALTER CONNECT POLICY ADD DISABLE 'u3' LOGIN 'test' FROM 'anywhere' ON ALL NODE;
示例4
增加一个黑名单,不允许任何用户从192.168.3.107到192.168.3.120这个IP地址段登录用户库test。sqlALTER CONNECT POLICY ADD DISABLE 'everyone' LOGIN 'test' FROM '192.168.3.107' TO '192.168.3.120' ON ALL NODE;
示例5
删除一个白名单策略,该策略为允许u1用户从192.168.3.105登录到任意数据库。sqlALTER CONNECT POLICY DROP ENABLE 'u1' LOGIN 'everydb' FROM '192.168.3.105' ON ALL NODE;
示例6
删除一个白名单策略,该策略为允许用户u2从192.168.3.107至192.168.3.110这个IP段访问数据库test。sqlALTER CONNECT POLICY DROP ENABLE 'u2' LOGIN 'test' FROM '192.168.3.107' TO '192.168.3.110' ON ALL NODE;
示例7
删除一个黑名单策略,该策略为不允许用户u3从任何地址访问用户库test。sqlALTER CONNECT POLICY DROP DISABLE 'u3' LOGIN 'test' FROM 'anywhere' ON ALL NODE;
示例8
删除一个黑名单策略,该策略为不允许所有用户从192.168.3.107至192.168.3.120的IP段访问用户库test。sqlALTER CONNECT POLICY DROP DISABLE 'everyone' LOGIN 'test' FROM '192.168.3.107' TO '192.168.3.120' ON ALL NODE;
示例9
删除集群所有节点上的白名单策略。sqlALTER CONNECT POLICY DROP ALL ENABLE ON ALL NODE;
示例10
删除关于用户库test的所有白名单策略。sqlALTER CONNECT POLICY DROP ALL ENABLE LOGIN 'test' ON ALL NODE;
示例11
删除所有的黑名单策略。sqlALTER CONNECT POLICY DROP ALL DISABLE ON ALL NODE;
示例12
删除有关用户库test的所有黑名单策略。sqlALTER CONNECT POLICY DROP ALL DISABLE LOGIN 'test' ON ALL NODE;
示例13
删除所有配置的可信策略,包括黑名单与白名单。sqlALTER CONNECT POLICY DROP ALL ON ALL NODE;