我真的对术语数据库、用户和模式感到困惑。谁能解释一下它们之间的区别(如果是的话)?
如果它们相同,那么它们之间有什么相似之处?我们如何使用它们?我们如何创建它们?
我目前正在学习 PostgreSQL 和 MySQL 之间的差异,因为我有一个新项目,而且我还打算将我现有的软件从 MySQL 迁移到 PostgreSQL。我实际上已经开始创建一个 HTML 表,比较两者之间的命令(用于用户/数据库/命令提示符等)。在阅读了这里的答案后,我注意到它role似乎被用作一个组。与MySQL我有两个用户,基本公共(DELETE,INSERT,SELECT和UPDATE权限),并与一对夫妇的额外权限的管理员用户。
所以基本上在 Windows 7 命令提示符下(仅限本地开发)...
GRANT或REVOKE获得用户权限时,角色与用户相比如何(如果有的话)?假设我有两个 Postgresql 数据库组,“authors”和“editors”,以及两个用户,“maxwell”和“ernest”。
create role authors;
create role editors;
create user maxwell;
create user ernest;
grant authors to editors; --editors can do what authors can do
grant editors to maxwell; --maxwell is an editor
grant authors to ernest; --ernest is an author
Run Code Online (Sandbox Code Playgroud)
我想编写一个高性能函数,它返回 maxwell 所属的角色列表(最好是他们的 oid),如下所示:
create or replace function get_all_roles() returns oid[] ...
Run Code Online (Sandbox Code Playgroud)
它应该返回 maxwell、authors 和 editors(但不是 ernest)的 oid。
但是当有继承时,我不知道该怎么做。
我以前在 MySQL 中访问 root 用户就好了。但最近,我再也不能了。
我可以正常登录:
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)
这是登录后的mysql状态:
mysql> status
--------------
mysql Ver 14.14 Distrib 5.5.28, for debian-linux-gnu (i686) using readline 6.2
Connection id: 37
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 4 min 16 sec
Threads: 1 …Run Code Online (Sandbox Code Playgroud) 我即将推出一些非常大的东西。我需要准备我的服务器和数据库。
我想将每组 100,000 个用户分组在单独的用户表中,但我不知道如何关联一个尝试登录到相应用户表的用户。
例如,我怎么知道用户jay@mail.com与用户表 #36 相关?
在一个用户表中拥有 1000 万用户或 100,000 中的 100 个用户是一样的吗?
脸书怎么做?我不敢相信他们会有一个包含 9.5 亿个条目的全局用户表。
在 SQL Server 2005 中,有没有办法找到在服务器级别不存在的用户(在服务器级别删除但在删除之前未与数据库解除关联的帐户)或未链接的帐户(帐户可能已在服务器级别而不是数据库级别被删除,然后重新读取但数据库级别从未被清理过)。
我有一个非常凌乱的服务器,如果可以运行查询来找到这些,那就太棒了。
我只是尝试使用添加一个新用户到 MySQL
CREATE USER 'name'@'%' IDENTIFIED BY '...'
Run Code Online (Sandbox Code Playgroud)
但是,它失败并出现以下错误:
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
Run Code Online (Sandbox Code Playgroud)
仅为 localhost 添加用户工作正常:
CREATE USER 'name'@'localhost' IDENTIFIED BY '...'
Run Code Online (Sandbox Code Playgroud)
我不知道可能是什么问题。我会很感激任何想法。
(我正在使用mysql Ver 14.14 Distrib 5.1.66。)
我有一个托管的 MySQL 数据库,我需要从我的客户站点访问它。他们拥有快速的宽带连接,可以为他们提供固定池中的一系列 IP 地址。
所以我需要锁定对他们的 MySQL 用户的访问,以便 Host 设置是一个类中的地址范围。不是全班。
我意识到我可以使用诸如 81.91.71.% 之类的通配符,但这太慷慨了。他们的范围更像是
81.10.20.1 --> 81.10.20.15
除了创建 15 个用户(每个 IP 地址一个)之外,还有其他方法可以做到这一点吗?谢谢马克
我需要一个查询,它可以为某个用户提供与某个数据库的活动或打开的连接数。我一直在寻找几个小时,到目前为止一无所获。我很接近,所以这是我尝试过的。
SHOW STATUS WHERE `variable_name` = 'Threads_connected';
SHOW STATUS LIKE '%onn%';
SELECT * FROM information_schema.processlist WHERE USER='database_user';
我在一家网络托管公司工作,我们的一个客户一直在达到他的max_user_connections极限,所以在解决为什么我需要知道他的用户现在使用了多少连接时,因为他不是共享服务器。我目前使用 MySQL (InnoDB) 版本 5.5.36。任何帮助将不胜感激!
users ×10
mysql ×5
postgresql ×2
sql-server ×2
mysql-5.1 ×1
mysql-5.5 ×1
oracle ×1
role ×1
schema ×1
ssms ×1