main
黄海 1 year ago
parent 1db4a5f3c1
commit cb66edd133

@ -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数据库权限概念 角色,用户,权限
}
}
}
Loading…
Cancel
Save