由於SQL標准的存在,各個關系型數據庫管理系統中創建庫的語句都差不多
一、mysql 中創建數據庫的語法如下:
1、創建數據庫的語法:
create {database | schema } [if not exists] db_name [create_specification] -- mysql在以在創建庫的時候指定庫的默認字符集, create_specification: [defualt] character set [=] charset_name [default] collate [=] collation_name
二、mysql中創建數據庫要有create 權限:
1、創建一個叫coder的用戶
mysql:root> create user coder@'127.0.0.1' identified by '123456'; Query OK, 0 rows affected (0.00 sec)
2、coder去創建庫時會報錯(權限不足)
mysql:coder> show grants; +-------------------------------------------+ | Grants for coder@127.0.0.1 | +-------------------------------------------+ | GRANT USAGE ON *.* TO 'coder'@'127.0.0.1' | +-------------------------------------------+ 1 row in set (0.00 sec) mysql:coder> create database coderdba; ERROR 1044 (42000): Access denied for user 'coder'@'127.0.0.1' to database 'coderdba'
3、用root用戶給coder用戶加上create權限
mysql:root> grant create on *.* to coder@'127.0.0.1'; Query OK, 0 rows affected (0.00 sec)
4、coder用戶重新發起連接、然后就可以創建庫了
mysql -ucoder -h127.0.0.1 -P3306 -p123456 mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.7.18-enterprise-commercial-advanced-log MySQL Enterprise Server - Advanced Edition (Commercial) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql:coder> create database coderdba; Query OK, 1 row affected (0.00 sec)
三、mysql數據庫權限的一些吐槽:
1、mysql權限好的地方就在於它權限的層次分明
2、mysql權限不好的地方就在於它的權限粒度不是非學細、比如說上面的例子,事實上我要的是一個create database 權限
但是可惜呀它沒有這么細的,它只有一個create ;但是只要在實例級別給了create 那么就是說它可以create everthing啦。
----