>데이터 베이스 >MySQL 튜토리얼 >mysql에는 어떤 권한이 있습니까?

mysql에는 어떤 권한이 있습니까?

青灯夜游
青灯夜游원래의
2022-04-12 14:04:0819065검색

MySQL 권한에는 다음이 포함됩니다. 1. 데이터베이스 로그인에만 사용할 수 있으며 어떤 작업도 수행할 수 없습니다. 2. SELECT 문을 사용하여 테이블 내용을 볼 수 있는 SELECT. 일련의 데이터베이스 관리 명령 4. 프로세스, 프로세스 정보 보기 허용 5. 종료 등

mysql에는 어떤 권한이 있습니까?

이 튜토리얼의 운영 환경: windows7 시스템, mysql8 버전, Dell G3 컴퓨터.

Mysql 다양한 권한:

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

执行存在的FunctionsProcedures。

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

은 SELECT 문을 사용하여 특정 데이터베이스의 모든 테이블과 뷰에 액세스할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. INSERTInsert_priv은 INSERT 문을 사용하여 특정 데이터베이스의 모든 테이블에 데이터 행을 추가할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. DELETEDelete_priv은 DELETE 문을 사용하여 특정 데이터베이스의 모든 테이블에서 데이터 행을 삭제할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. UPDATEUpdate_priv은 UPDATE 문을 사용하여 특정 데이터베이스의 모든 데이터 테이블의 값을 업데이트할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. REFERENCESReferences_priv은 사용자에게 특정 데이터베이스의 테이블을 가리키는 외래 키를 생성할 수 있는 권한을 부여하는 것을 의미합니다. CREATECreate_priv은 권한 있는 사용자가 CREATE TABLE 문을 사용하여 특정 데이터베이스에 새 테이블을 생성하는 데 사용할 수 있는 권한을 나타냅니다. ALTERAlter_priv 은 ALTER TABLE 문을 사용하여 특정 데이터베이스의 모든 데이터 테이블을 수정할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. SHOW VIEWShow_view_priv은 사용자에게 특정 데이터베이스에 있는 기존 뷰의 뷰 정의를 볼 수 있는 권한을 부여하는 것을 의미합니다. CREATE ROUTINECreate_routine_priv은 사용자에게 특정 데이터베이스에 대한 저장 프로시저 및 저장 함수를 생성할 수 있는 권한을 부여하는 것을 의미합니다. ALTER ROUTINEAlter_routine_priv은 사용자에게 데이터베이스의 기존 저장 프로시저와 저장 함수를 업데이트하고 삭제할 수 있는 권한을 부여하는 것을 의미합니다. INDEXIndex_priv은 특정 데이터베이스의 모든 데이터 테이블에 대한 인덱스를 정의하고 삭제할 수 있는 권한을 사용자에게 부여하는 것을 의미합니다. DROPDrop_priv은 사용자에게 특정 데이터베이스의 모든 테이블과 뷰를 삭제할 수 있는 권한을 부여하는 것을 의미합니다. CREATE TEMPORARY TABLESCreate_tmp_table_priv은 사용자에게 특정 데이터베이스에 임시 테이블을 생성할 수 있는 권한을 부여하는 것을 의미합니다. CREATE VIEWCreate_view_priv은 사용자에게 특정 데이터베이스에 새 뷰를 생성할 수 있는 권한을 부여하는 것을 의미합니다. EXECUTE ROUTINEExecute_priv은 사용자에게 특정 데이터베이스의 저장 프로시저 및 저장 함수를 호출할 수 있는 권한을 부여하는 것을 의미합니다. LOCK TABLESLock_tables_priv은 사용자에게 특정 데이터베이스의 기존 데이터 테이블을 잠글 수 있는 권한을 부여하는 것을 의미합니다. ALL 또는 ALL PRIVILEGES 또는 SUPERSuper_priv는 위의 모든 권한/슈퍼 권한을 의미합니다5.2 테이블 권한을 부여할 때
권한 이름 사용자 테이블의 필드에 해당 Description
SELECT

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.열 권한 부여

열 권한 부여 시 값은 SELECT, INSERT, UPDATE로만 지정할 수 있으며, 권한 뒤에는 열 이름 list columns-list를 추가해야 합니다.

5.4. 가장 효율적인 권한은 사용자 권한입니다.

사용자 권한을 부여할 때 데이터베이스 권한을 부여할 때 지정할 수 있는 모든 값 외에 은 다음 값일 수도 있습니다.

  • CREATE USER: 부여된 사용자가 생성할 수 있음을 나타냅니다. 새 사용자 권한을 삭제합니다.
  • SHOW DATABASES: 사용자에게 SHOW DATABASES 문을 사용하여 모든 기존 데이터베이스의 정의를 볼 수 있는 권한이 부여되었음을 나타냅니다.

【관련 추천: mysql 비디오 튜토리얼

위 내용은 mysql에는 어떤 권한이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.