This is not too hard to do on the frontend, a little more difficult in the backend. Both will require some knowledge of PHP. What I’m going to explain won’t make much sense unless you’re a bit of a WordPress coder. There’s is really no other way to do it, and if it’s not something you know how to do, you may want to contact a developer to get his done for you.
You’d need to create a custom template for your record shortcode, and have a field set up that grabs the user name or id of the currently logged in user. (details on that here) The way this works is it only records the value if it’s empty (i.e. for the first time) if you want it to record this value every time, you need to clear it’s value in the record object before the form head is printed in the template.
If you need to do this on the backend you’ll need to attach a handler to the ‘pdb-before_submit_update’ filter to update the value before it’s saved. You can do this in your functions.php file or in an auxiliary plugin.
Your last request will need something again attached to the ‘pdb-before_submit_update’ filter. I don’t know what you want to do when someone edits a record while not logged in. but you’ll be able to tell when that filter is executed so you can do whatever you want done if that happens. Put your record shortcode on a protected page (logged-in users only) and you won’t have to worry about it, if that’s the issue.