Skip to content

执行数据库命令设置

除了通过修改配置文件进行可信策略配置外,还可通过命令进行可信策略配置。

说明:

  • 所有的可信策略配置只能在系统库进行设置,普通用户库的管理员无权设置可信策略。
  • 删除可信策略时必须谨慎,若删除了所有可信策略,则当前登录客户端必须在未断连前新增至少一个白名单,否则所有用户均无法登录数据库,只有修改配置后重启服务才行。

语法格式

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 NODEON NODE ICONST则表示黑白名单在当前节点生效。

说明:

在trust.ini中默认配置trust everydb everyone from anywhere,该项覆盖了所有白名单选项,单独设置白名单无意义,若需白名单生效,需删除该配置项,可在启动服务前修改配置生效或通过命令删除该项。

示例

  • 示例1
    增加一个白名单,允许用户u1从192.168.3.105访问任意数据库。

    sql
    ALTER 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。

    sql
    ALTER 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。

    sql
    ALTER CONNECT POLICY ADD DISABLE 'u3' LOGIN 'test' FROM 'anywhere' ON ALL NODE;
  • 示例4
    增加一个黑名单,不允许任何用户从192.168.3.107到192.168.3.120这个IP地址段登录用户库test。

    sql
    ALTER 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登录到任意数据库。

    sql
    ALTER 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。

    sql
    ALTER CONNECT POLICY DROP ENABLE 'u2' LOGIN 'test' FROM '192.168.3.107' TO '192.168.3.110' ON ALL NODE;
  • 示例7
    删除一个黑名单策略,该策略为不允许用户u3从任何地址访问用户库test。

    sql
    ALTER CONNECT POLICY DROP DISABLE 'u3' LOGIN 'test' FROM 'anywhere' ON ALL NODE;
  • 示例8
    删除一个黑名单策略,该策略为不允许所有用户从192.168.3.107至192.168.3.120的IP段访问用户库test。

    sql
    ALTER CONNECT POLICY DROP DISABLE 'everyone' LOGIN 'test' FROM '192.168.3.107' TO '192.168.3.120' ON ALL NODE;
  • 示例9
    删除集群所有节点上的白名单策略。

    sql
    ALTER CONNECT POLICY DROP ALL ENABLE ON ALL NODE;
  • 示例10
    删除关于用户库test的所有白名单策略。

    sql
    ALTER CONNECT POLICY DROP ALL ENABLE LOGIN 'test' ON ALL NODE;
  • 示例11
    删除所有的黑名单策略。

    sql
    ALTER CONNECT POLICY DROP ALL DISABLE ON ALL NODE;
  • 示例12
    删除有关用户库test的所有黑名单策略。

    sql
    ALTER CONNECT POLICY DROP ALL DISABLE LOGIN 'test' ON ALL NODE;
  • 示例13
    删除所有配置的可信策略,包括黑名单与白名单。

    sql
    ALTER CONNECT POLICY DROP ALL ON ALL NODE;