请问一下mysql是否限制了单个表的容量,能改吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问一下mysql是否限制了单个表的容量,能改吗相关的知识,希望对你有一定的参考价值。

请问一下mysql是不是限制了单个表的容量,能改变大小的限制吗?

参考技术A 这个要看你的表用什么存储引擎吧

如果你用myisam存储引擎的话,则一个表会包含有3个文件:frm、MYD、MYI。mysql没对这些文件作大小限制,其大小受你操作系统对单个文件的最大大小的限制的影响。

如果你用innodb存储引擎,一般情况下,数据都是集中存放在ibdata里面(ibdata可以设成多个),ibdata的大小受参数innodb_data_file_path限制(但一般都设置自动增长),当然了,其大小也受你操作系统对单个文件的最大大小的限制的影响。

mysql> show variables like 'innodb_data_file_path';
+-----------------------+------------------------+
| Variable_name | Value |
+-----------------------+------------------------+
| innodb_data_file_path | ibdata1:10M:autoextend |
+-----------------------+------------------------+
1 row in set (0.00 sec)

mysql>本回答被提问者采纳

SQL Server:你能限制对一张表的访问吗

【中文标题】SQL Server:你能限制对一张表的访问吗【英文标题】:SQL Server : can you limit access to only one table 【发布时间】:2012-04-04 22:25:48 【问题描述】:

我认为答案是否定的,但我希望让某人访问 SQL Server 数据库,但我真的只希望他们可以访问一个表。

限制某人只能访问一个数据库很容易,但不知道我是否可以限制为单个表。

我的想法是用另一个表的同义词创建另一个数据库,然后限制对该数据库的访问,但我想知道是否有人能想到更好的方法。

我也不相信它会起作用,因为我认为会有权限冲突。

【问题讨论】:

如果您愿意,可以让人们访问单个,创建他们的登录名并授予对您的表的选择权限 【参考方案1】:

是的。

exec sp_msforeachtable "DENY SELECT ON ? TO [username];"
GO

GRANT SELECT ON [schemaName].[tableName] to [username]
Go 

虽然这可行,但您最好使用 roles 和 AD 组来管理权限。

【讨论】:

【参考方案2】:

循环遍历所有表并拒绝访问的问题是如果您添加一个新表。

重要的是不要让用户“db_datareader”访问整个数据库。使用 UI,您可以使用登录下的用户映射选项卡,您可以创建仅具有“公共”访问权限的用户。然后,您可以转到数据库并授予该用户对特定表的 SELECT 访问权限(通过单击 Securables 选项卡下奇怪的“搜索”按钮)。

这种方法当然也适用于脚本。

【讨论】:

这比接受的答案更有帮助。我不明白为什么这个答案的票数更少。【参考方案3】:
GRANT SELECT ON [SchemaName].[TableName] to [UserName]

【讨论】:

这如何保护其余的表? 它没有,这就是为什么答案没有被标记为接受,而接受的答案却被标记的原因。不知道你是不是要我指出我错了几个月后我早就忘记了这个答案后的一些奇怪的原因,无论哪种方式,希望我的评论有所帮助。 抱歉这个问题是在聊天中引起我注意的。当我发表评论时,我实际上并没有意识到这个问题有多老。尽管如此,我认为对原始问题的答案的各个方面提出质疑是有效的,无论其接受状态或投票数如何。很多问题都没有公认的答案,而这个问题仍然存在,因为答案旨在帮助 OP 未来的读者。许多人可能会认为页面上的任何答案都是答案。 这可能不完全符合提问者的要求,但这正是我想要的:)【参考方案4】:

当然。 GRANT你想要的权限。

当您授予用户访问数据库的权限时,请查看为他们分配的角色以及这些角色拥有的权限。

问题在于人们通常在一开始就授予了过于宽泛的权限。

【讨论】:

【参考方案5】:

当然可以。创建用户并授予他们对数据库的访问权限后,仅授予对该表的选择访问权限(或他们需要的任何级别)。

【讨论】:

【参考方案6】:

更好的方法是创建一个单独的schema,在该schema 中创建一个proc。然后允许用户EXECproc。而已。您可以在 schema 中创建一个 view,这可能是您所追求的更多。

【讨论】:

【参考方案7】:

更好的方法是为该特定表创建安全的。 IT 会问你要保护什么;表、视图、数据库。然后选择特定的表来保护该用户并将该用户排除在该表之外。

【讨论】:

以上是关于请问一下mysql是否限制了单个表的容量,能改吗的主要内容,如果未能解决你的问题,请参考以下文章

虚拟机的root用户名 密码 能改吗,怎么改????

js 获取微信地理位置 是不是允许的提示样式能改吗

我的电脑右键属性里的CPU型号和内存大小能改吗?

什么是FTP?FTP端口号是多少?FTP的端口号能改吗

报错后怎么改?

Vivado hls 对C语言的限制需要改哪些怎么改代码