|
|
|
@ -1,27 +1,66 @@
|
|
|
|
|
package UnitTest;
|
|
|
|
|
|
|
|
|
|
import java.sql.Connection;
|
|
|
|
|
import java.sql.DriverManager;
|
|
|
|
|
import java.sql.Statement;
|
|
|
|
|
import com.YunXiao.Util.SyncUtil;
|
|
|
|
|
import com.dsideal.QingLong.Util.CommonUtil;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Db;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Record;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class TestPgRole {
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 功能:删除用户
|
|
|
|
|
*
|
|
|
|
|
* @param user_name
|
|
|
|
|
*/
|
|
|
|
|
public static void delUser(String user_name) {
|
|
|
|
|
String sql = "DROP USER ?";
|
|
|
|
|
Db.update(sql, user_name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 功能:创建用户
|
|
|
|
|
*
|
|
|
|
|
* @param user_name
|
|
|
|
|
* @param pwd
|
|
|
|
|
*/
|
|
|
|
|
public static void createUser(String user_name, String pwd) {
|
|
|
|
|
String sql = "CREATE USER ? WITH PASSWORD ?";
|
|
|
|
|
Db.update(sql, user_name, pwd);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 功能:判断用户是否存在
|
|
|
|
|
*
|
|
|
|
|
* @param user_name
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public static boolean isExistUser(String user_name) {
|
|
|
|
|
String sql = "SELECT * FROM pg_user WHERE usename = ?";
|
|
|
|
|
List<Record> list = Db.find(sql, user_name);
|
|
|
|
|
return !list.isEmpty();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
String url = "jdbc:postgresql://10.10.14.71:5432/szjz_db";
|
|
|
|
|
String user = "postgres";
|
|
|
|
|
String password = "DsideaL147258369";
|
|
|
|
|
|
|
|
|
|
try (Connection conn = DriverManager.getConnection(url, user, password);
|
|
|
|
|
Statement stmt = conn.createStatement()) {
|
|
|
|
|
// 创建新用户
|
|
|
|
|
stmt.executeUpdate("CREATE USER newuser WITH PASSWORD 'password';");
|
|
|
|
|
// 创建角色并授予权限
|
|
|
|
|
stmt.executeUpdate("CREATE ROLE read_only;");
|
|
|
|
|
stmt.executeUpdate("GRANT USAGE, SELECT ON ALL TABLES IN SCHEMA public TO read_only;");
|
|
|
|
|
// 将角色授予用户
|
|
|
|
|
stmt.executeUpdate("GRANT read_only TO newuser;");
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
//初始化
|
|
|
|
|
SyncUtil.init();
|
|
|
|
|
|
|
|
|
|
//综合素质评价系统 数据库访问用户名:zhszpj,密码:随机生成, 表名前缀(建议,非强制要求):zhszpj
|
|
|
|
|
String user_name = "zhszpj";
|
|
|
|
|
String pwd = CommonUtil.getSixRandom();
|
|
|
|
|
|
|
|
|
|
if (isExistUser(user_name)) {
|
|
|
|
|
System.out.println("用户名" + user_name + "已存在,将删除!");
|
|
|
|
|
delUser(user_name);
|
|
|
|
|
System.out.println("用户名" + user_name + "已成功删除!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
createUser(user_name, pwd);
|
|
|
|
|
System.out.println("用户名" + user_name + "已创建,密码为:" + pwd);
|
|
|
|
|
|
|
|
|
|
//PG数据库权限概念: 角色,用户,权限
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|