我试图在Postgres数据库中创建两个用户-一个具有对两个模式中所有表的读-写访问权,另一个具有对相同模式进行读-写-创建(即能够进行DDL更改)的用户。
我现在有这些声明。
CREATE SCHEMA
schema_a;
CREATE SCHEMA
schema_b;
CREATE ROLE read;
CREATE ROLE read_write;
CREATE ROLE read_write_create;
GRANT USAGE ON SCHEMA schema_a, schema_b TO read;
GRANT SELECT ON ALL TABLES IN
我正在处理一个使用Oracle 11g数据库的遗留应用程序,并且遇到了一个问题,其中我有5个表,它们都在不同的模式中,具有相同的数据结构。我需要能够将数据插入到这些表中,并且我正在努力避免重复的代码。
我知道要做下面这样的事情
IF p_schema = SCHEMA1 THEN
INSERT INTO SCHEMA1.TABLE_NAME_SCHEMA1 (...) VALUES (...)
ELSIF p_schema = SCHEMA2 THEN
INSERT INTO SCHEMA2.TABLE_NAME_SCHEMA2 (...) VALUES (...)
ELSIF p
Server 2012。
下面的查询获取容器DB中存在的所有模式和相应表:
select table_schema,TABLE_NAME from information_schema.tables where
TABLE_SCHEMA not in ('cdc') and table_type in ('base table','view')
cdc模式如下:
事实:
cdc模式对于dbo模式中的一个表(data_personnel_ct,datalake_personnel_new_ct)有两个更改表
如何将Postgres数据库中所有模式的所有表权限授予用户/角色? 下面的命令只授予特定的模式,而不是整个数据库。 GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA schema_name TO username; 例如, 数据库:测试模式: schema1,schema2内部测试表: schema1.table1,schema1.table2,schema2.table1,schema2.table2 如何向在数据库中找到的所有架构中找到的所有表提供所有表权限。
我们的DB中有一个自定义模式(config),其中声明和填充了多个表。在DataGrip和pgAdmin中,我们都可以看到自定义模式中的表。下面的查询向我们展示了public模式和custom模式中的表:
select table_schema, table_name
from information_schema.tables
where not table_schema='pg_catalog'
and not table_schema='information_schema';
在DataGrip中,我们必须“显示所有模式”;在pgAdmin中,所
我有两个表,table1和table2,这两个表都有共同的列。
下面给出了获取每个表的列名的查询,
从第一个表中获取列的查询:
select column_name from information_schema.columns
where table_schema = 'schema1'
and table_name = 'table1';
从第二个表中获取列的查询:
select column_name from information_schema.columns
where table_schema = 'schema2'
and t
我有一个任务是将数据从X表SCHEMA_A移动到SCHEMA_B。
问题是表SCHEMA_A.X有4列(sid、is_deleted、c、d),而表SCHEMA_B.X有5列(sid、is_deleted、rid、c、d)。
如何从另一个表中插入rid列的值,在这种情况下,我希望使查询尽可能动态?目前,我只能考虑以某种方式修改这个查询
INSERT INTO SCHEMA_B.X
SELECT * FROM SCHEMA_A.X Aa
WHERE A.is_deleted = 'n'
谢谢你之前
现有的PostgreSQL数据库将表组织在不同的“模式”中,以分割大型数据库(用于缩放和实现服务器级的优化安全性)。类似地,declarative_base表描述被组织在一个包中的不同文件中--每个模式一个文件:
package
__init__.py
tables_in_schema1.py
tables_in_schema2.py
元数据和引擎对象作为db.Model从包的顶部进入每个文件。例如,tables_in_schema1.py应该有(忽略必要的ORM导入,然后需要反向引用)表alpha
from package import db
class Table
我需要将从SELECT获得的表名从参数传递到另一个SELECT。
首先,获取表名:
SELECT table_name FROM information_schema.tables WHERE table_schema='my_schema'
然后,我试图封装:
SELECT tmp.`field1` FROM (SELECT table_name FROM information_schema.tables WHERE table_schema='my_schema') AS tmp
试图从每个表中获取field1数据。
所以我要做的是:获取表名,然后从该表的
我的数据库中有SQL Server用户,但由于某些原因,用户在连接时无法查看这些表
下面是我用来创建该用户的命令。我不想让用户dbuser成为模式的所有者。
create user dbuser for login dbuser'
--on the specific database, I am using these commands.
exec sp_addrolemember @rolename = 'db_datareader', @membername = 'dbuser'
exec sp_addrolemember @rolename =
我正在尝试使用laravel 4.2中的迁移回滚数据库表中已更新的列。 public function up()
{
if (Schema::hasTable('payments') && !Schema::hasColumn('payments', 'updated_at')) {
Schema::table('payments', function (Blueprint $table) {
$table->dateTime('updated_at
我必须创建类模型,它将包含4个类-数据库,模式,表和列,类似于:
public class Database
{
public string Name { get; set; }
public List<Schema> Schemas { get; set; };
public List<Table> Tables { get; set; };
public List<Column> Columns { get; set; };
}
public class Schema
{
public string Name
查询INFORMATION_SCHEMA.COLUMNS将检索表中的列名。 SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'dbo' AND TABLE_NAME = 'EMR_FACILITY'
ORDER BY ORDINAL_POSITION 但是,在INFORMATION_SCHEMA中似乎没有系统模式信息。 SELECT * FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'sys' AND TABL
我目前正试图通过在C#中调用以下SQL来检索每个表的表名和主键。这就是我迄今为止尝试过的:
SELECT t.TABLE_NAME As 'Table Name',
Keys.COLUMN_NAME AS 'Primary Key'
FROM INFORMATION_SCHEMA.TABLES t
left outer join INFORMATION_SCHEMA.TABLE_CONSTRAINTS Constraints
on t.TABLE_NAME = Constraints.Table_name
我有一个postgresql (v10)数据库。我用模式tn_beta_db创建了数据库tn_schema。我已经创建了三个用户,并执行了以下操作,这意味着授予所有用户读取和修改对所有表的访问权限,这是tn_beta_migrator可能创建的当前表和未来表。
\c tn_beta_db
-- User tn_beta_reader --
ALTER DEFAULT PRIVILEGES IN SCHEMA tn_schema FOR ROLE tn_beta_reader GRANT SELECT ON TABLES TO tn_beta_reader;
GRANT CONNECT ON
我使用的是Greenplum 6.8(Postgres 9.4)开源软件,我创建了一个对模式拥有所有权限的角色,在将该角色分配给用户后,我在模式中添加了一个新表,但用户无法访问该表。我必须刷新我的角色定义才能访问这个新表,角色定义如下: grant usage on schema <schema_name> to <rolename>;
grant select on all tables in schema <schema_name> to <rolename>;
ALTER DEFAULT PRIVILEGES IN SCHEMA <
我试图将PostgreSQL模式及其数据从一个数据库复制到另一个数据库,而不影响当前模式(old_schema)的可用性。我还希望对模式中的特定表子集执行此操作,并希望新模式在其他数据库中具有不同的名称。
在下面的过程中,我在步骤1和步骤2中使用Python,
从old_schema获取要复制的表名列表。
select
distinct
information_schema.columns.table_name as table_name
from
information_schema.columns
where
在postgres数据库中,我在模式(非公共)中有许多前缀为"tb_“的表。我想要创建一个新的表,作为所有这些表的联合,前缀为"tb_“。所有的表都有相同的结构,没有重复的。我可以使用下面的SQL语句手动执行此操作。
CREATE TABLE schema1.tb
AS
SELECT *
FROM schema1.tb_1
UNION
SELECT *
FROM schema1.tb_2
UNION
SELECT *
FROM schema.tb_3
然而,我想自动化,因为有许多表。也许使用PL/pgSQL是可能的。我不知道如何编写PLSQL代码,因此在这里寻求帮助。
另外,在
我在两个模式中有一个表Schema1和Schema2,在连接中使用了索引列,如下所示
SELECT clog.id,
clog.c_id,
cdr.attr_number,
cdr.cnumber
FROM t_table_log clog
INNER JOIN
(SELECT id,
MAX(c_id) AS maxcid
FROM t_table_log
GROUP BY id
) llog
ON llog.id = clog.id
INNER JOIN t_
我创建了一个简单的数据库、一个表、一个模式和一个包含该模式的表(所以,有两个表)。
--sysadmin
create database dba_schema
go
use dba_schema
go
create table tabela1 ( id int )
go
--LOGIN---------------------------------------------
USE [master]
GO
CREATE LOGIN [schema_user] WITH PASSWORD=N'schema_user',
DEFAULT_DATABASE=[dba_