집 >데이터 베이스 >MySQL 튜토리얼 >mysql에는 어떤 권한이 있습니까?
MySQL 권한에는 다음이 포함됩니다. 1. 데이터베이스 로그인에만 사용할 수 있으며 어떤 작업도 수행할 수 없습니다. 2. SELECT 문을 사용하여 테이블 내용을 볼 수 있는 SELECT. 일련의 데이터베이스 관리 명령 4. 프로세스, 프로세스 정보 보기 허용 5. 종료 등
이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.
Mysql 다양한 권한:
1. USAGE: 사용자를 생성하면 해당 사용자에 대한 사용 권한이 자동으로 부여됩니다(기본적으로 부여됨).
이 권한은 데이터베이스 로그인에만 사용할 수 있으며 어떠한 작업도 수행할 수 없으며 REVOKE를 사용해도 사용자 권한을 삭제할 수 없습니다.
grant usage on *.* to 'iap'@'%' identified by 'iap123';
2. 데이터 카테고리에 대한 권한
2.1. SELECT를 사용하여 테이블 내용을 볼 수 있습니다.
grant select on testdb.* to 'iap'@'%';
2.2, insert
값에 삽입을 사용하려면 먼저 삽입 권한이 있어야 합니다….
2.3, update
업데이트 테이블을 사용하려면 먼저 업데이트 권한이 있어야 합니다.
update shop set price=3.5 where article=0001 and dealer='A';
2.4, delete
delete from ….where….(테이블의 레코드 삭제)
2.5, file(특정 데이터베이스에는 해당되지 않으므로 반드시 삭제 권한이 있어야 합니다. *.*에서 사용)
파일 권한은 서버 호스트의 파일에 대한 액세스를 의미합니다. 파일 권한이 있는 데이터베이스 사용자만 select ..into outfile, load data infile... 작업을 수행할 수 있습니다.
하지만 하지 마세요. 관리자가 아닌 계정에 파일, 프로세스, 최고 권한을 부여하는 것은 심각한 보안 위험을 초래합니다.
grant file on *.* to 'iap'@'%';
파일 내보내기: 선택 ... outfile로 '파일 경로'
가져오기 및 내보내기 경로 설정 보기: '%sec%'와 같은 변수 표시 ;
secure-file-priv 매개변수는 데이터 로드를 제한 하고, ... outfile을 선택하고, 지정된 디렉터리에 있는 load_file()을 사용하는 데 사용됩니다.
구체적인 수정 방법 : https://blog.csdn.net/weixin_39631030/article/details/79873936
파일 가져오기 : load infile '절대 파일 경로' into table테이블 이름;
구체적인 사용법: https://www.cnblogs.com/darange/p/10508714.html
3. 구조적 허가
3.1. 테이블 생성을 사용하려면 생성 권한이 있어야 합니다.
grant create on testdb.* to 'iap'@'%'
3.2, alter
alter table을 사용하려면 alter 권한이 있어야 합니다.
grant alter on testdb.* to 'iap'@'%'
예: alter table shop modify dealer char(15);
3.3, index
에는 [create |drop] index
grant index on testdb.* to 'iap'@'%';
create index ix_shop on shop(article);
drop index ix_shop on을 실행하려면 인덱스 권한이 있어야 합니다. shop;
3.4, drop
grant drop on testdb.* to 'iap'@'%';
drop 데이터베이스 db_name;
drop table table_name;
drop view view_name;
을 사용하려면 삭제 권한이 있어야 합니다.드롭 인덱스 index_name;
3.5, 임시 테이블 만들기(테이블이 아니라 테이블이라는 점에 유의하세요)
임시 테이블 만들기를 사용하려면 먼저 임시 테이블을 만들 수 있는 권한이 있어야 합니다.
-- 授予iap@localhost 创建临时表权限 grant create temporary tables on testdb.* to 'iap'@'%'; --例 : iap 用户登录,创建临时表 create temporary table tt1(id int);
3.6, show view
必须拥有show view权限,才能执行show create view。
grant show view on testdb.* to 'iap'@'%'; show create view view_shop;
3.7、CREATE ROUTINE:创建procedure或function的权限。
如果用户有create routine 权限那么他就可以创建procedure | function 。
create {procedure|function}
如果用户创建了procedure | function 那么mysql 自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:
grant create routine on testdb.* to 'iap'@'%';
3.8、alter routine
必须具有alter routine的权限,才可以使用
{alter |drop} {procedure|function}
-- 授予 testdb数据库 修改/删除 存储过程/函数的权限 grant alter routine on testdb.* to 'iap'@'%';
3.9、excute
执行存在的Functions、Procedures。
grant execute on testdb.* to 'iap'@'%';
3.10 、create view
必须有create view的权限,才可以使用 create view 创建视图。
-- 授予'iap'@'localhost'创建视图权限 grant create view on testdb.* to 'iap'@'%'; -- 例 : 'iap'@'localhost' 登录,创建v_shop视图 create view v_shop as select price from shop;
3.11 、event
event : 允许查询,创建,修改,删除MySQL事件.
事件适用范围:对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理。
详细说明:https://www.cnblogs.com/langtianya/p/5445528.html
例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表。
3.12 、Trigger
Trigger权限代表允许创建,删除,执行,显示触发器的权限.
4、管理权限
4.1、grant option
拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)
grant grant option on testdb.* to 'iap'@'%';
4.2、super
Super权限代表允许执行一系列数据库管理命令,包括kill强制关闭某个连接命令, change master to创建复制关系命令,以及create/alter/drop server等命令,修改全局变量的SET语句
mysql> grant super on *.* to p1@localhost; mysql> purge master logs before ‘mysql-bin.000006′;
4.3、 process
Process权限代表允许查看MySQL中的进程信息,比如执行show processlist, mysqladmin processlist, show engine等命令
通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。
show PROCESSLIST
另外,管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟*.*
grant super on *.* to p1@localhost;
4.4、Shutdown
shutdown权限代表允许关闭数据库实例,执行语句包括 : mysqladmin shutdown.
4.5、 show database
通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。
对于iap@%t用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:
4.6、reload
必须拥有reload权限,才可以执行flush [tables | logs | privileges]
reload 是 administrative 级的权限,即 server administration;
这类权限包括: create user, process, reload, replication client, replication slave, show databases, shutdown, super
这类权限的授权不是针对某个数据库的,因此须使用on *.* 来进行
grant reload on *.* to 'iap'@'%'
4.7、lock tables
必须拥有lock tables权限,才可以使用lock tables
grant lock tables on testdb.* to 'iap'@'localhost';
lock tables a1 read;
unlock tables;
4.8、references
有了references权限,用户就可以将其它表的一个字段作为某一个表的外键约束。
4.9、replication client
Replication client权限代表允许执行show master status, show slave status, show binary logs命令
4.10、replication slave
복제 슬레이브 권한은 슬레이브 호스트가 이 사용자를 통해 마스터에 연결하여 마스터-슬레이브 복제 관계를 설정할 수 있음을 의미합니다. 슬레이브 서버를 보고 마스터 서버에서 바이너리 로그를 읽을 수 있습니다.
*.*에 복제 슬레이브를 'iap'@'%'로 부여;
슬레이브 호스트 표시;
binlog 이벤트 표시;
4.11, 사용자 생성
사용자 생성 권한 생성 및 수정 허용, 사용자 권한을 삭제하고 이름을 바꿉니다.
5. 권한 유형 테이블 5.1.
SELECTSelect_priv
INSERT | Insert_priv | 은 INSERT 문을 사용하여 특정 데이터베이스의 모든 테이블에 데이터 행을 추가할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. |
---|---|---|
DELETE | Delete_priv | 은 DELETE 문을 사용하여 특정 데이터베이스의 모든 테이블에서 데이터 행을 삭제할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. |
UPDATE | Update_priv | 은 UPDATE 문을 사용하여 특정 데이터베이스의 모든 데이터 테이블의 값을 업데이트할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. |
REFERENCES | References_priv | 은 사용자에게 특정 데이터베이스의 테이블을 가리키는 외래 키를 생성할 수 있는 권한을 부여하는 것을 의미합니다. |
CREATE | Create_priv | 은 권한 있는 사용자가 CREATE TABLE 문을 사용하여 특정 데이터베이스에 새 테이블을 생성하는 데 사용할 수 있는 권한을 나타냅니다. |
ALTER | Alter_priv | 은 ALTER TABLE 문을 사용하여 특정 데이터베이스의 모든 데이터 테이블을 수정할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. |
SHOW VIEW | Show_view_priv | 은 사용자에게 특정 데이터베이스에 있는 기존 뷰의 뷰 정의를 볼 수 있는 권한을 부여하는 것을 의미합니다. |
CREATE ROUTINE | Create_routine_priv | 은 사용자에게 특정 데이터베이스에 대한 저장 프로시저 및 저장 함수를 생성할 수 있는 권한을 부여하는 것을 의미합니다. |
ALTER ROUTINE | Alter_routine_priv | 은 사용자에게 데이터베이스의 기존 저장 프로시저와 저장 함수를 업데이트하고 삭제할 수 있는 권한을 부여하는 것을 의미합니다. |
INDEX | Index_priv | 은 특정 데이터베이스의 모든 데이터 테이블에 대한 인덱스를 정의하고 삭제할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. |
DROP | Drop_priv | 은 사용자에게 특정 데이터베이스의 모든 테이블과 뷰를 삭제할 수 있는 권한을 부여하는 것을 의미합니다. |
CREATE TEMPORARY TABLES | Create_tmp_table_priv | 은 사용자에게 특정 데이터베이스에 임시 테이블을 생성할 수 있는 권한을 부여하는 것을 의미합니다. |
CREATE VIEW | Create_view_priv | 은 사용자에게 특정 데이터베이스에 새 뷰를 생성할 수 있는 권한을 부여하는 것을 의미합니다. |
EXECUTE ROUTINE | Execute_priv | 은 사용자에게 특정 데이터베이스의 저장 프로시저 및 저장 함수를 호출할 수 있는 권한을 부여하는 것을 의미합니다. |
LOCK TABLES | Lock_tables_priv | 은 사용자에게 특정 데이터베이스의 기존 데이터 테이블을 잠글 수 있는 권한을 부여하는 것을 의미합니다. |
ALL 또는 ALL PRIVILEGES 또는 SUPER | Super_priv | 는 위의 모든 권한/슈퍼 권한을 의미합니다 |
5.2 테이블 권한을 부여할 때 | ||
권한 이름 | 사용자 테이블의 필드에 해당 | Description |
Select_priv
사용자에게 SELECT 문을 사용하여 특정 테이블에 액세스할 수 있는 권한을 부여합니다삽입 | Insert_priv | 사용자에게 INSERT 문을 사용하여 특정 테이블에 데이터 행을 추가할 수 있는 권한을 부여합니다 |
---|---|---|
DELETE | Delete_priv | DELETE 문을 사용하여 특정 테이블에서 데이터 행을 삭제할 수 있는 권한을 사용자에게 부여합니다 |
DROP | Drop_priv | 사용자에게 데이터 테이블 삭제 권한을 부여합니다 |
UPDATE | Update_priv | UPDATE 문을 사용하여 특정 데이터 테이블을 업데이트할 수 있는 권한을 사용자에게 부여합니다 |
ALTER | Alter_priv | 사용자에게 ALTER TABLE 문을 사용하여 데이터 테이블을 수정할 수 있는 권한을 부여합니다. 권한 |
REFERENCES | References_priv | 사용자에게 특정 데이터 테이블을 참조하기 위한 외래 키를 생성할 수 있는 권한을 부여합니다 |
CREATE | Create_priv | 특정 이름을 사용하여 데이터 테이블을 생성할 수 있는 권한을 부여합니다 |
INDEX | Index_priv | 테이블에 인덱스를 정의할 수 있는 권한을 부여합니다 |
ALL 또는 ALL PRIVILEGES 또는 SUPER | Super_priv | 모든 권한 이름 |
5.3.열 권한 부여 열 권한 부여 시 5.4. 가장 효율적인 권한은 사용자 권한입니다. 사용자 권한을 부여할 때 데이터베이스 권한을 부여할 때 지정할 수 있는 모든 값 외에
【관련 추천: mysql 비디오 튜토리얼】 |
위 내용은 mysql에는 어떤 권한이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!