用Python编写一个简单的信息系统,并实现对该信息系统操作的审计。A、该信息系统可以实现数据的增删改查;B、该信息系统支持多个账号;C、管理员账号可以查看其他用户个各种操作,包括登录时间信息及进行的操作。
时间: 2024-09-25 09:11:43 浏览: 31
在Python中,我们可以创建一个简单的命令行界面(CLI)的信息系统来满足上述需求。我们将使用`argparse`库处理命令行输入,`sqlite3`库来存储和管理数据,以及`getpass`库隐藏密码输入以增强安全性。
首先,我们需要设置数据库结构,包含用户表(用户名、密码和登录时间)和数据表(用于保存各种记录):
```python
import sqlite3
from getpass import getpass
# 连接到SQLite数据库
def create_connection():
conn = sqlite3.connect('sys_info.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS users
(username TEXT PRIMARY KEY, password TEXT)''')
c.execute('''CREATE TABLE IF NOT EXISTS data
(id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT, operation TEXT, timestamp TEXT)''')
return conn
# 用户注册和登录功能
def register_user(conn):
username = input("Enter your username: ")
password = getpass("Enter your password: ")
c = conn.cursor()
c.execute("INSERT INTO users VALUES (?, ?)", (username, password))
conn.commit()
def login_user(conn, username):
entered_password = getpass(f"Enter password for {username}: ")
c = conn.cursor()
c.execute("SELECT * FROM users WHERE username=?", (username,))
user_data = c.fetchone()
if user_data and user_data[1] == entered_password:
print(f"{username} logged in.")
return True
else:
print("Invalid credentials.")
return False
# 操作审计函数
def audit(conn, username):
c = conn.cursor()
c.execute("SELECT * FROM data WHERE username=?", (username,))
operations = c.fetchall()
print(f"Operations by {username}:")
for op in operations:
print(f"Operation: {op[1]}, Timestamp: {op[2]}")
# 主程序
if __name__ == "__main__":
conn = create_connection()
while True:
print("\nOptions:")
print("1. Register")
print("2. Login")
print("3. Audit")
print("4. Exit")
choice = int(input("Enter your choice: "))
if choice == 1:
register_user(conn)
elif choice == 2:
if login_user(conn, input("Enter username to login: ")):
main_menu(conn)
elif choice == 3:
username = input("Enter the username for whom you want to view operations: ")
audit(conn, username)
elif choice == 4:
break
else:
print("Invalid choice.")
conn.close()
```
在这个例子中,我们创建了一个主菜单循环,允许用户注册新账户、登录已有的账户并审计操作。管理员(即拥有所有权限的用户)通过登录后可以看到其他用户的操作记录。
阅读全文