我希望表中的行只能访问组的成员.我通过以下方法创建用户并将其添加到组中,
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,其中提到了组的名称,其成员可以访问该特定行.任何提示或方法都可以使整个组可以访问行.
我使用 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)