AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-10803

wookie1's questions

Martin Hope
wookie1
Asked: 2012-09-17 04:25:30 +0800 CST

用户权限问题

  • 7

您好我正在尝试创建一个登录角色(用户),其修改数据库的能力相当低。他们应该能够选择、删除、创建触发器、插入和更新。然后,我想拥有多个作为用户成员的帐户,因此它们具有相同的权限,但我可以为单个用户记录编辑。

我正在使用 pgadmin 进行数据库设计,我的程序使用 QtSQL 访问它。

尝试选择一些数据作为测试时,我收到的错误消息被 Qt 捕获。当我运行与数据库所有者和超级用户相同的代码时,我没有问题。

bool run_query(const QString & q){
    QSqlDatabase db = QSqlDatabase::database("default");
    QSqlQuery query(db);

    query.exec(q);

    if (!query.isActive()){
        QMessageBox::warning(0, QObject::tr("Database Error"),
                             query.lastError().text());
        return false;
    }

    while (query.next()){
        QString title = query.value(0).toString();
        std::cerr << qPrintable(title) << std::endl;
    }
    return true;
}

run_query("Select forename from contacts;");

错误:关系联系人的权限被拒绝 QPSQL:无法创建查询

到目前为止,我已经创建了角色(用户)。

-- Role: user

-- DROP ROLE "user";

CREATE ROLE "user" LOGIN
  ENCRYPTED PASSWORD 'md54d45974e13472b5a0be3533de4666414'
  NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
COMMENT ON ROLE "user" IS 'Low level user';

因为这给了以前的问题。我尝试为数据库添加公共权限,但这也不起作用。

现在我不知道在哪里寻找解决方案。任何帮助深表感谢。谢谢。

postgresql role
  • 2 个回答
  • 11121 Views
Martin Hope
wookie1
Asked: 2012-09-11 05:32:09 +0800 CST

现在之后的截止日期规则输入日期

  • 1

您好我正在尝试找到一种方法来确保输入的截止日期晚于当前时间和日期。目前我正在尝试使用规则。

CREATE OR REPLACE RULE "DeadlineInput" AS
    ON INSERT TO "ComLog"
   WHERE new."Deadline" < now() DO INSTEAD  SELECT "ThrowError"('New deadline must be after current time'::bpchar) AS "ThrowError";
COMMENT ON RULE "DeadlineInput" ON "ComLog" IS 'Ensures deadline input is after the current time.';

我正在使用一个单独的函数来尝试抛出错误,因为当我尝试在规则内执行它时,由于语言错误而失败。以下是我的功能。

-- Function: "ThrowError"(character)

-- DROP FUNCTION "ThrowError"(character);

CREATE OR REPLACE FUNCTION "ThrowError"("ErrorString" text)
  RETURNS void AS
$BODY$

BEGIN

    RAISE EXCEPTION '%', "ErrorString";

END;

$BODY$
  LANGUAGE plpgsql IMMUTABLE
  COST 100;
ALTER FUNCTION "ThrowError"(character)
  OWNER TO reuben;

无论日期如何,这总是会产生错误消息,我不知道为什么。作为附带问题,有没有办法让传递给我的函数的字符串包含当前时间。就像是"ThrowError"('New deadline must be after current time %' now())

谢谢

postgresql trigger
  • 1 个回答
  • 103 Views
Martin Hope
wookie1
Asked: 2012-09-03 15:05:01 +0800 CST

将输入限制为几个不同的字符串

  • 12

嗨,我似乎无法按照我在 postgreSQL 中期望的方式工作。在 pgadmin 中,我执行以下 SQL 查询。

-- Check: "TypeCheck"

-- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck";

ALTER TABLE "ComLog"
  ADD CONSTRAINT "TypeCheck" CHECK ("Type" SIMILAR TO 'email|post|IRL|minutes');
COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes';

执行时将其转换为。

-- Check: "TypeCheck"

-- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck";

ALTER TABLE "ComLog"
  ADD CONSTRAINT "TypeCheck" CHECK ("Type" ~ similar_escape('email|post|IRL|minutes'::text, NULL::text));
COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes';

我希望这会将我对 Types 列的输入限制为电子邮件帖子 IRL 或分钟之一。但是,当输入表数据时,当我输入其中一种类型时,此约束会失败。Types 列是字符类型。有谁知道如何解决这一问题。谢谢。

postgresql constraint
  • 1 个回答
  • 5992 Views
Martin Hope
wookie1
Asked: 2012-08-13 05:11:17 +0800 CST

每人加权答案

  • 5

嗨,我是数据库设计的新手,但我试图确保我第一次就把事情做好,以免养成坏习惯。我的问题是我有一组人,我想为他们记录映射到重要性的需求。需求应该从一组中提取,以避免重复出现。每个人都会提取其中的一个子集,并对它们的重要性进行分级。即需要 =[茶、饼干、厕所设施、互联网接入] 人 = [Phil, Bryan]

菲尔需要茶和饼干,茶的重要性为 10,饼干的重要性为 3。

Bryan 需要互联网接入和饼干,重要性分别为 4 和 7。

您建议如何组织表格来实现这一点。谢谢

database-design
  • 2 个回答
  • 102 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve