有时我们可能需要控制某个IQ数据库用户不能登录、访问某个节点(比如Coordinator),那么如何实现呢?下面通过一个例子加以说明:
假设一个IQ 15.2 Multiplex中有三个节点,mp2node_c、mp2node_w1、mp2node_w2。如果打算让mp2user用户不能登录、访问mp2node_c;但是能够登录mp2node_w1、mp2node_w2两个节点,可以使用如下方法:
使用dbisql工具以DBA连接到协调节点mp2node_c,然后执行如下命令:
CREATE LOGIN POLICY OnlyAccessWritersPolicy LOCKED=ON;
ALTER LOGIN POLICY OnlyAccessWritersPolicy LOCKED=OFF MULTIPLEX SERVER mp2node_w1;
ALTER LOGIN POLICY OnlyAccessWritersPolicy LOCKED=OFF MULTIPLEX SERVER mp2node_w2;
ALTER USER mp2user LOGIN POLICY OnlyAccessWritersPolicy;
在成功执行上面的4个命令后,执行
dbisql -c "uid=mp2user;pwd=mpuserpwd;eng=mp2node_c;links=tcpip" -nogui
会有如下提示:
Could not connect to the database.
Connection disallowed by login policy for this user
SQLCODE=-1212, ODBC 3 State="HY000"
不能连接到协调节点。
如果执行dbisql -c "uid=mp2user;pwd=mpuserpwd;eng=mp2node_w1;links=tcpip" -nogui或
dbisql -c "uid=mp2user;pwd=mpuserpwd;eng=mp2node_w2;links=tcpip" -nogui 能够成功登录!
如何去掉登录控制呢?下面是方法:
ALTER USER mp2user LOGIN POLICY root
如何删除自定义的login policy呢?可以使用如下方法(但是需要被删除的策略没有被用户使用) :
ALTER USER mp2user LOGIN POLICY root
DROP LOGIN POLICY OnlyAccessWritersPolicy
阅读(2626) | 评论(0) | 转发(0) |