mysql2

having过滤

 

权限管理

创建账号

1.本地帐号

create user 'zqh'@'localhost' identified by '123';     #连接方式 mysql -uzqh -p123

2.远程账号

create user 'zqh'@'客户端ip' identified by '123';     #连接方式 mysql -uzqh -p123 -h服务端ip   。只有固定的ip的客户端才能使用

create user 'zqh'@'%' identified by '123';     #连接方式 mysql -uzqh -p123 -h服务端ip 。        所有ip的客户端都能使用

3.授权

user所有都开放权限:   user:*.*

db用于对库级别的开放权限  db:db1.*

对表级别进行开放权限    tables_priv:db1.t1

对某一行记录进行开放权限     columns_priv:id,name

4.具体授权方法

发放所有库的全部权限:grant all on *.* to '具体账号';

发放所有库的选择权限:grant select on *.* to '具体账号';

回收所有库的全部权限:revoke all on *.* from '具体账号';

回收所有库的选择权限:revoke select on *.* from '具体账号';

发放db1库的全部权限:grant all on db1.* to '具体账号';

发放db1库的选择权限:grant select on db1.* to '具体账号';

发放db1库的t2表的全部权限:grant all on db1.t2 to '具体账号';

发放db1库的t2表选择权限:grant select on db1.t2 to '具体账号';

python的简单连接实例

import pymysql
#获取链接,host接id,port接端口(默认3306),user接远程账号,db接库名字
conn=pymysql.connect(
    host='202.193.52.51',
    port=3306,
    user='zqh',
    password='zqh',
    db='db1',
    charset='utf8'
)
#拿到游标对象
cursor=conn.cursor()
sql='select * from vip;' #写sql语句
rows=cursor.execute(sql)   #执行sql语句
print(rows)

注入问题,防止sql语句被input的内容进行拼接

1.将input的内容进行限制,不能输入--空格之类的非法字符串

2.mysql自带清除非法字符串

sql='select * from userinfo where user =%s and pwd=%s'

rows=cursor.execute(sql,(input_user,input_pwd))

语句

1.插入一条记录

import pymysql
#获取链接
conn=pymysql.connect(
    host='202.193.52.51',
    port=3306,
    user='zqh',
    password='zqh',
    db='db1',
    charset='utf8'
)
#拿到游标对象
cursor=conn.cursor()
sql='''
insert into main(name,content,flink) values('samt','什么几把东西',3);
'''
rows=cursor.execute(sql)
print(rows)
conn.commit()   #必须写这句确认才能完全进行插入操作
cursor.close() 
conn.close()

2.插入多条记录

import pymysql
#获取链接
conn=pymysql.connect(
    host='202.193.52.51',
    port=3306,
    user='zqh',
    password='zqh',
    db='db1',
    charset='utf8'
)
#拿到游标对象
cursor=conn.cursor()
sql='''
insert into main(name,content,flink) values(%s,%s,%s)
'''
rows=cursor.executemany(sql,[('ahao','你好',3),('bhao','你好111',3)])
print(rows)
conn.commit()   #必须写这句确认才能完全进行插入操作
cursor.close()
conn.close()

 3.查记录

import pymysql
#获取链接
conn=pymysql.connect(
    host='202.193.52.51',
    port=3306,
    user='zqh',
    password='zqh',
    db='db1',
    charset='utf8'
)
#拿到游标对象
cursor=conn.cursor()
sql='''
select * from vip;
'''
rows=cursor.execute(sql)
print(rows)
#利用rows.fetchone()来获取取出来的
print(cursor.fetchone())
print(cursor.fetchone())
print(cursor.fetchone())
conn.commit()   #必须写这句确认才能完全进行插入操作
cursor.close()
conn.close()

 

posted @ 2020-11-23 18:17  克莱比-Kirby  阅读(81)  评论(0)    收藏  举报