我有一个带有一些表的用户,我将三个权限授予另一个用户。现在我需要创建一个视图并将select选择授予另一个用户,如下所示:
用户A
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE_A TO USER_B WITH GRANT OPTION;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE_B TO USER_B WITH GRANT OPTION;
GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE_C TO USER_B WITH GRANT OPTION;
用户B
CREATE OR REPLACE VIEW V_XYZ AS SELECT * FROM TABLE_A, TABLE_B, TABLE_C;
GRANT ALL ON V_XYZ to USER_C;
这给出了以下错误:
ORA-01720: "grant option does not exist for '%s.%s'"
*Cause: A grant was being performed on a view or a view was being replaced
and the grant option was not present for an underlying object.
*Action: Obtain the grant option on all underlying objects of the view or
revoke existing grants on the view.
答案 0 :(得分:-1)
尝试给予:
#pragma omp parallel for
for (int i = 0; i < count; i++)
{
float vertX = WIDTH/2 * (vertices[i*2]+1);
float vertY = -HEIGHT/2*(vertices[i *2+ 1]+1)+HEIGHT;
float fact = (mouseX - vertX)*(mouseX - vertX) + (mouseY - vertY)*(mouseY - vertY) + 120;
glm::vec2 acc = 3.f / fact*(glm::vec2(mouseX, mouseY) - glm::vec2(vertX, vertY)) * (float)bPressed;
acc.y *= -1;
speed[i*2] += acc.x - speed[i*2]/200;
speed[i *2+ 1] += acc.y - speed[i *2+ 1] / 200;
vertices[i*2] += speed[i*2]*dt;
vertices[i *2+ 1] += speed[i*2+1]*dt;
}
答案 1 :(得分:-1)
您要求将所有权限提供给USER_C,但只有4个权限已授予您基础表。尝试从A到B授予ALL PRIVILEGES,或者在SELECT,UPDATE,INSERT,DELETE上限制从B到C的授权。