小编kha*_*ldi的帖子

组的行级安全性或使行加入组

我希望表中的行只能访问组的成员.我通过以下方法创建用户并将其添加到组中,

CREATE USER abc LOGIN PASSWORD 'securedpassword1';
CREATE USER xyz LOGIN PASSWORD 'securedpassword2';

ALTER GROUP permanent ADD USER abc;
Run Code Online (Sandbox Code Playgroud)

然后我写的策略使它只对当前用户可访问.但我需要整个小组才能访问它.

CREATE TABLE table_Workers
(
    worID INT
    ,worName CHARACTER VARYING
    ,pgUser CHARACTER VARYING
);
INSERT INTO table_Workers VALUES 
(1,'Jason','abc'),(2,'Roy','abc'),(3,'Johny','abc')
,(4,'Jane','xyz'),(5,'Kane','xyz'),(6,'Stuart','xyz');


CREATE POLICY policy_employee_user ON table_Workers FOR ALL
TO PUBLIC USING (pgUser = current_user);

ALTER TABLE table_Workers ENABLE ROW LEVEL SECURITY;
Run Code Online (Sandbox Code Playgroud)

pgUser命名可以访问该行的用户.我希望用pgRole替换列pgUser,其中提到了组的名称,其成员可以访问该特定行.任何提示或方法都可以使整个组可以访问行.

sql postgresql row-level-security

7
推荐指数
1
解决办法
232
查看次数

PyQt 适用于前一个 GUI 框架的“后退”按钮的功能

我使用 PyQt 来开发 GUI。像大多数 GUI 一样,它具有用于下一帧和前一帧的下一帧和后退按钮。每个帧都在一个单独的类中定义。问题是,对于“下一步”按钮的功能,您可以导入当前类中的下一个框架类,然后再导入show()它。但是对于'back',我们在尝试导入前一个类时收到错误。有人可以给出任何逻辑提示来为“后退”按钮创建相应的功能。

第一帧的类:

from GUI2 import secondwindow

class firstwindow(object):
    def nextWindow(self):
        self.window = QtWidgets.QMainWindow()
        self.ui = secondwindow()
        self.ui.setupUi(self.window)
        app.closeAllWindows()
        self.window.show()

    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(622, 471)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")

        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(210, 140, 191, 41))
        self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.OpenHandCursor))
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.nextWindow)
.....
.....
.....
Run Code Online (Sandbox Code Playgroud)

第二帧:

class secondwindow(object):
    def previousWindow(self):
        XXX
        XXX

    def setupUi(self, Dialog):

        Dialog.setObjectName("Dialog")
        Dialog.resize(1200, 650)
        Dialog.setMinimumSize(QtCore.QSize(552, 0))

        self.pushButton_2 = QtWidgets.QPushButton(Dialog)
        self.pushButton_2.setGeometry(QtCore.QRect(480, 240, 70, 31))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_2.clicked.connect(self.previouswindow)
...
...
...
Run Code Online (Sandbox Code Playgroud)

python pyqt python-3.x pyqt5

5
推荐指数
1
解决办法
3591
查看次数

标签 统计

postgresql ×1

pyqt ×1

pyqt5 ×1

python ×1

python-3.x ×1

row-level-security ×1

sql ×1